我正在使用LOG4j& SLF4J。
我正在尝试将每个日志记录消息分成不同的文件(info.log,warning.log和error.log)。
例如,我使用 log4j.appender.infoFile.Threshold = INFO 来过滤DEBUG消息,但我不知道如何排除WARN和ERROR消息。我只是想写INFO消息。与warning.log相同的事情。
# Direct log messages to INFO log file
log4j.appender.infoFile=org.apache.log4j.RollingFileAppender
log4j.appender.infoFile.File=info.log
log4j.appender.infoFile.MaxFileSize=1MB
log4j.appender.infoFile.MaxBackupIndex=1
log4j.appender.infoFile.append=false
log4j.appender.infoFile.layout=org.apache.log4j.PatternLayout
log4j.appender.infoFile.Threshold=INFO
答案 0 :(得分:1)
您正在寻找LevelMatchFilter:
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/LevelMatchFilter.html
它可以添加到appender(每个日志级别需要一个)并用于过滤日志级别。只需在每个级别设置一个并让它们拒绝所有内容,但它是自己的级别。
答案 1 :(得分:1)
来自文档"Is it possible to direct log output to different appenders by level?",它说:
如果您必须按精确级别匹配过滤事件,则可以附加一个
LevelMatchFilter
到任何appender以精确过滤掉日志记录事件 等级匹配。
好像这就是你要找的东西。
答案 2 :(得分:0)
最终代码是:
# Direct log messages to INFO log file
log4j.appender.infoFile=org.apache.log4j.RollingFileAppender
log4j.appender.infoFile.File=info.out
log4j.appender.infoFile.MaxFileSize=1MB
log4j.appender.infoFile.MaxBackupIndex=1
log4j.appender.infoFile.append=false
log4j.appender.infoFile.layout=org.apache.log4j.PatternLayout
log4j.appender.infoFile.Threshold=INFO
log4j.appender.infoFile.filter.a=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.infoFile.filter.a.LevelToMatch=INFO
log4j.appender.infoFile.filter.a.AcceptOnMatch=true
log4j.appender.infoFile.filter.b=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.infoFile.filter.b.LevelToMatch=ERROR
log4j.appender.infoFile.filter.b.AcceptOnMatch=false
log4j.appender.infoFile.filter.c=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.infoFile.filter.c.LevelToMatch=WARN
log4j.appender.infoFile.filter.c.AcceptOnMatch=false
log4j.appender.infoFile.filter.e=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.infoFile.filter.e.LevelToMatch=DEBUG
log4j.appender.infoFile.filter.e.AcceptOnMatch=false
log4j.appender.infoFile.filter.f=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.infoFile.filter.f.LevelToMatch=FATAL
log4j.appender.infoFile.filter.f.AcceptOnMatch=false
我不知道它是否对某人有用