仅记录文件警告消息

时间:2013-09-10 13:43:55

标签: java logging log4j slf4j

我正在使用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

3 个答案:

答案 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  

我不知道它是否对某人有用