当前位置: 首页 > 知识库问答 >
问题:

Log4J2 Yaml包级别

毕衡
2023-03-14

我试图让我的日志使用log4j2和yaml工作,一直在挣扎。

这个包是com的。eclipse非常嘈杂,所以我只想在warn或更高级别记录来自该包的消息。对于我的软件包,我希望将调试及以上记录到滚动追加器,并将错误或以上记录到错误日志。在控制台上,我想看到除org之外的所有东西的debug。埃普利斯

使用当前配置,我看不到组织。eclipse调试消息,很好,我看到了com。myorganization在控制台上显示消息,但文件附加器似乎无法工作。如果我改变最后两个记录者的顺序,那么组织。eclipse消息返回控制台,但我的包的文件附加器开始工作。任何帮助都将不胜感激。

这是我当前的配置:

Configuration:
  name: Default

  Properties:
    Property:
      name: log-path
      value: "logs"

  Appenders:

    Console:
      PatternLayout:
        pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'
      name: Console
      target: SYSTEM_OUT

    File:
      name: File_Appender
      fileName: ${log-path}/minimal-ws.error.log
      PatternLayout:
        pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'

    RollingFile:
      - name: RollingFile_Appender
        fileName: ${log-path}/minimal-ws.log
        filePattern: 'logs/archive/minimal-ws.log.%d{yyyy-MM-dd-hh-mm}.gz'
        PatternLayout:
          pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'
        Policies:
          SizeBasedTriggeringPolicy:
            size: 10 MB
        DefaultRollOverStrategy:
          max: 10

  Loggers:

    Root:
      AppenderRef:
      - ref: Console
      level: DEBUG

    Logger:
      - name: com.myorganization
        level: DEBUG
        AppenderRef:
          - ref: File_Appender
            level: ERROR
          - ref: RollingFile_Appender
            level: DEBUG

    Logger:
      - name: org.eclipse
        level: DEBUG
        additivity: false
        AppenderRef:
        - ref: Console
          level: WARN

共有1个答案

白嘉石
2023-03-14

您不需要在yaml中定义多个记录器:定义。而是使用一个带有多个-name:属性的记录器:定义。以下是根据您的要求提供的工作解决方案。[请相应更改包名。]

Configuration:
  name: Default

  Properties:
    Property:
      name: log-path
      value: "."

  Appenders:

    Console:
      PatternLayout:
        pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'
      name: Console
      target: SYSTEM_OUT

    File:
      name: File_Appender
      fileName: ${log-path}/minimal-ws.error.log
      PatternLayout:
        pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'

    RollingFile:
      - name: RollingFile_Appender
        fileName: ${log-path}/minimal-ws.log
        filePattern: 'logs/archive/minimal-ws.log.%d{yyyy-MM-dd-hh-mm}.gz'
        PatternLayout:
          pattern: '%d{yyyy-MM-dd HH:mm:ss a} [%t] %-5level %logger{36} - %msg%n'
        Policies:
          SizeBasedTriggeringPolicy:
            size: 10 MB
        DefaultRollOverStrategy:
          max: 10

  Loggers:
    Root:
      AppenderRef:
      - ref: Console
        level: ERROR

    Logger:
      - name: eclipse
        level: DEBUG
        additivity: false
        AppenderRef:
        - ref: Console
          level: DEBUG
        - ref: File_Appender
          level: DEBUG
      - name: com
        level: DEBUG
        additivity: false
        AppenderRef:
          - ref: Console
            level: INFO
          - ref: File_Appender
            level: ERROR
          - ref: RollingFile_Appender
            level: DEBUG

此配置写入控制台文件追加器滚动文件追加器

 类似资料:
  • HD钱包算法决定了只要给定根扩展私钥,整棵树的任意节点的扩展私钥都可以计算出来。 我们来看看如何利用bitcoinjs-lib这个JavaScript库来计算HD地址: const bitcoin = require('bitcoinjs-lib'); ---- let xprv = 'xprv9s21ZrQH143K4EKMS3q1vbJo564QAbs98BfXQME6nk8UCrnX

  • 主要内容:Linux补丁文件的生成和使用,给apache打入补丁Linux 系统中更新用源码包安装的软件,除了卸载重装这种简单粗暴的方法外,还可以下载补丁文件更新源码包,用新的源码包重新编译安装软件。比较两种方式,后者更新软件的速度更快。 使用补丁文件更新源码包,省去了用 ./configured 生成新的 Makefile 文件,还省去了大量的编译工作,因此效率更高。学完本节会对比有更深入的理解。 Linux补丁文件的生成和使用 Linux 系统中可以使用

  • 最后让我们讨论一些有关函数和闭包的高级功能:函数指针、发散函数和返回值闭包。 我们讨论过了如何向函数传递闭包;也可以向函数传递常规函数!这在我们希望传递已经定义的函数而不是重新定义闭包作为参数是很有用。通过函数指针允许我们使用函数作为另一个函数的参数。函数的类型是 ,使用小写的 “f” 以便不与 Fn 闭包 trait 向混淆。fn 被称为函数指针(function pointer)。指定参数为函

  • 从带有SP1的AEM 6.2升级到AEM 6.4后,很少有软件包未安装。旧版本处于已安装状态。 对于新软件包,显示消息为“似乎安装了另一个版本:”请参见下面的屏幕截图。 正因为如此,我可以看到很少的脚本没有更新最新的API。例如AEM 6.4升级实例:

  • 问题内容: 我指的是Bill Karwin的演示文稿,以实现一个封闭表,这将有助于我管理层次结构。不幸的是,该演示文稿并未显示我如何插入/更新幻灯片67中提到的列;这将是非常有用的。我一直在想一想,但我无法提出我可以测试的具体内容。这是到目前为止我得到的: 我不确定该怎么做。有任何想法吗? 问题答案: 您知道对于Parent = self,您的Level = 0,并且当您从祖先复制路径时,您只是将

  • 在Spring 3.1及更高版本中,LocalContainerEntityManagerFactoryBean应该能够在没有persistence.xml.的情况下配置JPA EntityManagerFactory。 当我使用PackagesToScan方法告诉工厂bean在哪里扫描我的实体类时,它似乎没有获取在包级别定义的Hibernate类型定义。 package-info.java: s