我知道在log4j的,你可以通过做一些像使用多个附加目的地:如何在Log4j2中添加多个appender引用?
log4j.logger.com.x=DEBUG, append1, append2
,但会等价是log4j2什么?
难道是这样的:
logger.com.x.level = DEBUG
logger.com.x.appenderRefs = append1, append2
?
我知道在log4j的,你可以通过做一些像使用多个附加目的地:如何在Log4j2中添加多个appender引用?
log4j.logger.com.x=DEBUG, append1, append2
,但会等价是log4j2什么?
难道是这样的:
logger.com.x.level = DEBUG
logger.com.x.appenderRefs = append1, append2
?
在您的示例中没有提供appenders 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>
我知道这是一个很老的问题,但我找到了解决方案通过使用以下语法(使用你的例子):
logger.com.x.appenderRef.app1.ref = append1
logger.com.x.appenderRef.app2.ref = append2
这样一切正常。
我同意Log4j 2的XML配置比Log4j 1.2更简单,记录更好。大多数doc示例使用XML,因此在使用XML配置格式时,解决问题(找到类似的配置,获得支持)会更容易。 –
好的,谢谢你,所以在你的中间区块,你将两个appender添加到同一个记录器,对吧? –
是的。您可以以这种方式为同一个记录器添加多个appender。您可以为特定的appenderRef提供不同的日志级别。 – asch