我知道在log4j中,您可以通过执行类似以下操作来使用多个追加程序:
log4j.logger.com.x=DEBUG, append1, append2
但是等价于log4j2呢?
会是这样吗?
logger.com.x.level = DEBUG
logger.com.x.appenderRefs = append1, append2
?
最佳答案
您没有在示例中提供追加器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>
<Logger name="com.x" level="debug" additivity="false">
<appenderRef ref="append1" />
<appenderRef ref="append2" />
</Logger>
...
</Loggers>
关于logging - 如何在Log4j2中追加多个追加器引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39650949/