【问题标题】:Why Log4j addivity doesn't work?为什么 Log4j 可加性不起作用?
【发布时间】:2016-09-08 13:34:55
【问题描述】:

我有以下 log4j 配置

log4j.rootLogger=ERROR, myappender1    

log4j.appender.myappender1=org.apache.log4j.RollingFileAppender
log4j.appender.myappender1.File=D:/phase10/myLog1.log
log4j.appender.myappender1.MaxFileSize=10MB
log4j.appender.myappender1.MaxBackupIndex=10
log4j.appender.myappender1.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender1.layout.ConversionPattern=%m%n

log4j.appender.myappender2=org.apache.log4j.RollingFileAppender
log4j.appender.myappender2.File=D:/phase10/myLog2.log
log4j.appender.myappender2.MaxFileSize=10MB
log4j.appender.myappender2.MaxBackupIndex=10
log4j.appender.myappender2.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender2.layout.ConversionPattern=%m%n

log4j.logger.com.my.package=INFO, myappender2 
log4j.addivity.com.my.package=false

在此之后我运行应用程序并在两个日志中查看 INFOWARNERROR消息。

我的配置有问题吗?

预期结果 - 仅在 myLog1.log ERROR 消息中
myLog2.logINFOWARNERROR消息中。

如果用log4j.addivity=false 替换log4j.addivity.com.my.package=false 我看到相同的结果)

更新

感谢@Kevin Tanzer 在 myLog1 中将 'addivity' 替换为 'additivity' 后,我没有看到任何消息。在 myLog2 我看到所有消息
com.my.package记录的所有消息

【问题讨论】:

标签: java logging log4j


【解决方案1】:

最后一个配置项应该是“additivity”而不是“addivity”,这可能会导致您的问题。您已经定义了两个单独的附加程序。

myappender1 将只有 ERROR(和 FATAL)消息。

myappender2 将收到 INFO、WARN 和 ERROR(和 FATAL)消息,因为 INFO 的严重性低于其他消息。即顺序为:

追踪, 调试, 信息, 警告, 错误和 致命

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 2011-06-23
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2016-10-06
    • 2020-02-21
    相关资源
    最近更新 更多