简体   繁体   English

是否可以使用Log4J仅记录一个级别的消息

[英]Is it possible to log only one level messages with Log4J

If I set the log level to DEBUG, All messages with log level >= DEBUG will be logged/printed. 如果我将日志级别设置为DEBUG,则将记录/打印所有日志级别> = DEBUG的消息。 But can I set log level to only DEBUG, such that messages with log level only with DEBUG will be printed. 但是我可以将日志级别设置为仅DEBUG,以便打印仅具有DEBUG的日志级别的消息。 Or can give a range like print all messages whose log level is >=DEBUG but < ERROR? 或者可以给出一个范围,比如打印日志级别> = DEBUG但是<ERROR?

Maybe you can use a LevelMatchFilter? 也许你可以使用LevelMatchFilter?

At some situation, You have to write logs to different outputs according to the level. 在某些情况下,您必须根据级别将日志写入不同的输出。 how can it be done by simply configuration of Log4j? 如何通过简单配置Log4j来完成? There are some methods below. 下面有一些方法。

http://wiki.apache.org/logging-log4j/LogToAppenderByLevel http://wiki.apache.org/logging-log4j/LogToAppenderByLevel

As said Jarle you have to use LevelMatchFilter . 正如Jarle所说,你必须使用LevelMatchFilter I will demonstrate it with one simple exam: 我将通过一个简单的考试来演示它:

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

In my source I append only ERROR messages to file with name TestLevels.txt 在我的源代码中,我只将ERROR消息附加到名为TestLevels.txt的文件中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM