【发布时间】:2010-10-21 00:41:01
【问题描述】:
假设我的应用程序中有这些包 - foo.bar 和 foo.foobar,并且我想将来自 foo.bar 包的所有 log4j 日志消息发送到 foobar.log 文件以及来自 foo 的日志消息。 foobar 到 foofoobar.log 文件,log4j.xml 文件应该如何配置?
【问题讨论】:
假设我的应用程序中有这些包 - foo.bar 和 foo.foobar,并且我想将来自 foo.bar 包的所有 log4j 日志消息发送到 foobar.log 文件以及来自 foo 的日志消息。 foobar 到 foofoobar.log 文件,log4j.xml 文件应该如何配置?
【问题讨论】:
您可以在记录器配置中使用 appender-ref:
<logger name="foo.bar">
<level value="debug"/>
<appender-ref ref="FILE1" />
</logger>
查看here 以获得完整示例。
【讨论】:
当您有重叠的层次结构并且不想要重复的日志消息时,我还建议将 additivty 设置为“false”。
即:
<logger name="foo.bar">
<level value="debug"/>
<appender-ref ref="FILE1" />
</logger>
<logger name="foo.bar.xyz" additivity="false">
<level value="debug"/>
<appender-ref ref="FILE2" />
</logger>
这样,定向到 FILE2 的消息不会被写入 FILE1
【讨论】:
我后来才想通,并将解释编译成一篇博文,这可能对正在阅读此页面的其他人有所帮助。
【讨论】: