Log4j - 记录除ERROR之外的所有级别

时间:2015-05-27 07:20:23

标签: logging log4j

有没有办法实现它?我的意思是我在我的应用程序中想要的是它应该记录来自所有级别的消息,包括调试和跟踪日志。实现此目的的显而易见的方法是将级别设置为ALL。但我不希望在我的日志文件中看到任何级别为ERROR的日志。

我的记录器配置如下:

log4j.category.com.serving=ALL, MFileLogger

log4j.appender.MFileLogger.File=/apps/logs/serving.log
log4j.appender.MFileLogger.MaxFileSize=250MB
log4j.appender.MFileLogger.MaxBackupIndex=3
log4j.appender.MFileLogger=org.apache.log4j.RollingFileAppender
log4j.appender.MFileLogger.Append=true
log4j.appender.MFileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.MFileLogger.layout.ConversionPattern=[%d] SRV %p %C => %m%n

1 个答案:

答案 0 :(得分:0)

您可以使用http://realm.io/docs/java/latest/#primary-keys来实现此目的。这样的事情可以奏效:

log4j.category.com.serving=ALL, MFileLogger

log4j.appender.MFileLogger.File=/apps/logs/serving.log
log4j.appender.MFileLogger.MaxFileSize=250MB
log4j.appender.MFileLogger.MaxBackupIndex=3
log4j.appender.MFileLogger=org.apache.log4j.RollingFileAppender
log4j.appender.MFileLogger.Append=true
log4j.appender.MFileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.MFileLogger.layout.ConversionPattern=[%d] SRV %p %C => %m%n

log4j.appender.MFileLogger.filter.ID=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.MFileLogger.filter.ID.LevelToMatch=ERROR
log4j.appender.MFileLogger.filter.ID.AcceptOnMatch=false

如果您的log4j版本早于LevelMatchFilter,则可能需要切换到XML配置(如上面的wiki文档中所述)才能使其正常工作。