我知道在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