【问题标题】:How to append multiple appender references in Log4j2?如何在 Log4j2 中附加多个附加器引用?
【发布时间】:2016-09-23 00:51:10
【问题描述】:

我知道在 log4j 中您可以通过执行以下操作来使用多个附加程序:

log4j.logger.com.x=DEBUG, append1, append2

但是 log4j2 中的等价物是什么?

会是这样吗:

logger.com.x.level = DEBUG
logger.com.x.appenderRefs = append1, append2

?

【问题讨论】:

    标签: logging log4j log4j2


    【解决方案1】:

    您没有在示例中提供附加程序 append1 和 append2 的类型,但这很重要,当您使用属性文件时。假设附加程序定义如下:

    appender.console.type = Console
    appender.console.name = append1
    ...
    appender.rolling.type = RollingFile
    appender.rolling.name = append2
    ...
    

    记录器应该是这样的:

    logger.console.name = com.x
    logger.console.level = debug
    logger.console.additivity = false
    logger.console.appenderRef.console.ref = append1
    
    logger.rolling.name = com.x
    logger.rolling.level = debug
    logger.rolling.additivity = false
    logger.rolling.appenderRef.rolling.ref = append2
    

    我建议根据manual中的属性文件配置示例进行此配置。我没有这样做,而是更喜欢 xml 格式。我建议您考虑迁移到 xml 格式。 log4j2 文档中的大多数示例都是针对 xml 配置格式的。 在 xml 的情况下,loggers 配置非常紧凑,就像这样:

    <Loggers>
        <Logger name="com.x" level="debug" additivity="false">
            <appenderRef ref="append1" />
            <appenderRef ref="append2" />
        </Logger>
        ...
    </Loggers>
    

    【讨论】:

    • 我同意 Log4j 2 XML 配置比 Log4j 1.2 更简单且文档更好。大多数文档示例使用 XML,因此当您使用 XML 配置格式时,解决问题(查找类似配置、获得支持)会容易得多。
    • 好的,谢谢,所以在您的中间块中,您要将两个附加程序添加到一个/同一个记录器,对吧?
    • 是的。您可以通过这种方式为同一个记录器添加多个附加程序。您可以为特定的 appenderRef 提供不同的日志级别。
    • 提供的属性示例具有误导性,因为它不会按预期工作。您实际上会用第二个记录器 "logger.rolling.name = com.x" 覆盖第一个定义的记录器 "logger.console.name = com.x" 所以只有第二个记录器将处于活动状态。要将第二个 appender 添加到 logger,只需为初始 logger 添加一个新的 appenderRef 属性:logger.console.appenderRef.appender2.ref = append2
    【解决方案2】:

    我知道这是一个很老的问题,但我通过使用以下语法(使用您的示例)找到了解决方案:

    logger.com.x.appenderRef.app1.ref = append1
    logger.com.x.appenderRef.app2.ref = append2
    

    通过这种方式,一切正常。

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多