将来自不同包的日志消息记录到不同的文件中

时间:2009-04-22 06:27:42

标签: java logging log4j

假设我的应用程序中有这些软件包--foo.bar和foo.foobar,我想将所有来自foo.bar软件包的log4j日志消息发送到foobar.log文件和来自foo的日志消息。 foob​​ar到foofoobar.log文件,我该如何配置log4j.xml文件?

3 个答案:

答案 0 :(得分:5)

您可以在记录器配置中使用appender-ref:

<logger name="foo.bar">
    <level value="debug"/>
    <appender-ref ref="FILE1" />
</logger>

查看完整示例here

答案 1 :(得分:1)

如果您有重叠的层次结构并且不想要重复的日志消息,我建议将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

答案 2 :(得分:1)

我稍后想出来并将解释汇编成博客文章,这可能有助于其他阅读此页面的人。

How to send log messages to different log files