2013-07-16 68 views
2

我想将我的信息级别日志和错误级别日志存储在单独的文件中。我的错误消息正在被正确转储,但是信息消息包含错误以及信息消息。以下是我的属性文件:使用log4j记录单独的日志文件

log4j.rootLogger = DEBUG, inf, err 

log4j.appender.inf = org.apache.log4j.FileAppender 
log4j.appender.inf.layout = org.apache.log4j.PatternLayout 
log4j.appender.inf.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n 
log4j.appender.inf.File = information.log 
log4j.appender.inf.Threshold = INFO 
log4j.appender.inf.filter = org.apache.log4j.varia.LevelMatchFilter 
log4j.appender.inf.filter.levelToMatch = INFO 
log4j.appender.inf.Append = false 
log4j.appender.inf.AcceptOnMatch = true 
log4j.appender.inf.filter = org.apache.log4j.varia.DenyAllFilter 

log4j.appender.err = org.apache.log4j.FileAppender 
log4j.appender.err.layout = org.apache.log4j.PatternLayout 
log4j.appender.err.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n 
log4j.appender.err.File = errormsg.log 
log4j.appender.err.Threshold = ERROR 
log4j.appender.err.filter = org.apache.log4j.varia.LevelMatchFilter 
log4j.appender.err.filter.levelToMatch = ERROR 
log4j.appender.err.Append = false 

和我的java文件如下:

package test; 

import org.apache.log4j.Logger; 
import org.apache.log4j.PropertyConfigurator; 

public class HelloLogger { 

    private static Logger logger = Logger.getLogger(HelloLogger.class); 

     public static void main(String[] args) { 
      PropertyConfigurator.configure("log4jconfig.properties"); 
      logger.error("This is error"); 
      logger.info("This is info"); 
      logger.debug("This is debug"); 
     } 
} 

请帮助.. Thanx提前

回答

0

this answer,属性文件没有被设计来处理过滤器,但如果您更改属性文件以将第一个appender的过滤器与ID分开(即1和2),它可能会有效:

log4j.appender.inf.filter.1 = org.apache.log4j.varia.LevelMatchFilter 
log4j.appender.inf.filter.1.levelToMatch = INFO 
log4j.appender.inf.Append = false 
log4j.appender.inf.AcceptOnMatch = true 
log4j.appender.inf.filter.2 = org.apache.log4j.varia.DenyAllFilter 
+0

雅我发布的问题后,但忘了更新相同..谢谢.. – manisha