如果我将日志级别设置为DEBUG,则将记录/打印所有日志级别为> = DEBUG的消息。 但是我可以将日志级别设置为仅DEBUG,以便打印仅具有DEBUG的日志级别的消息。或者可以给出一个范围,例如打印日志级别为> = DEBUG但是< ERROR?
答案 0 :(得分:8)
也许你可以使用LevelMatchFilter?
在某些情况下,您必须根据级别将日志写入不同的输出。如何通过简单配置Log4j来完成?下面有一些方法。
答案 1 :(得分:1)
正如Jarle所说,你必须使用 LevelMatchFilter 。 我将通过一个简单的考试来证明它:
log4j.rootLogger = WARN, admin
log4j.appender.admin=org.apache.log4j.rolling.RollingFileAppender
log4j.appender.admin.rollingPolicy = org.apache.log4j.rolling.TimeBasedRollingPolicy
log4j.appender.admin.rollingPolicy.FileNamePattern = Files\\TestLevels-%d{dd-MM-yyy}.txt
log4j.appender.admin.layout = org.apache.log4j.PatternLayout
log4j.appender.admin.layout.ConversionPattern = Date: %d{dd-MM-yyyy} Time: %d{HH:mm:ss} Message [%m]%n
log4j.appender.admin.filter.01=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.admin.filter.01.LevelToMatch=FATAL
log4j.appender.admin.filter.01.AcceptOnMatch=false
log4j.appender.admin.filter.02=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.admin.filter.02.LevelToMatch=ERROR
log4j.appender.admin.filter.02.AcceptOnMatch=true
log4j.appender.admin.filter.03=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.admin.filter.03.LevelToMatch=WARN
log4j.appender.admin.filter.03.AcceptOnMatch=false
在我的源代码中,我只将 ERROR 消息附加到名为TestLevels.txt的文件