【发布时间】:2012-11-17 14:41:46
【问题描述】:
使用 log4j 写入多个日志文件时,我遇到了重复日志消息的问题。
目前我正在尝试在我的foo.log 文件中记录名为 foobar 的特定记录器的INFO 级别数据(及更高级别),然后是所有WARN 级别日志消息(及更高级别) ) 用于bar.log 文件中的所有记录器。
因此,重复的日志消息被写入foo.log 文件(每行记录两次),经过快速研究后,我发现解决此问题的建议是将log4j.additivity.foobar=false 添加到我的属性文件中.
问题在于,尽管它停止了重复行,但来自 foobar 记录器的 WARN 消息永远不会写入 bar.log 文件。
我的 log4j 属性文件如下:
log4j.rootLogger = WARN, FOO, BAR
log4j.logger.foobar = INFO, FOO
log4j.additivity.foobar = false
log4j.appender.FOO = org.apache.log4j.RollingFileAppender
log4j.appender.FOO.layout = org.apache.log4j.PatternLayout
log4j.appender.FOO.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.FOO.File = foo.log
log4j.appender.BAR = org.apache.log4j.RollingFileAppender
log4j.appender.BAR.layout = org.apache.log4j.PatternLayout
log4j.appender.BAR.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.BAR.File = bar.log
有谁知道我如何将日志消息写入两个日志文件(就像我开始设置 additivity 属性之前所做的那样)并仍然防止重复的日志消息?
请注意,这是问题的简化摘要。在现实世界的场景中,有多个记录器和两个以上的日志文件
【问题讨论】:
标签: log4j