Log4j按级别输出日志到不同文件配置分析

来源:互联网 发布:京东骇客和淘宝血滴子 编辑:程序博客网 时间:2024/04/29 12:43


定义自己的Appender类,继承DailyRollingFileAppender,改写针对Threshold 的设置说明。


源代码记载:


public boolean isAsSevereAsThreshold(Priority priority)  
  {  
      return threshold == null || priority.isGreaterOrEqual(threshold);  
  }  


重写 isAsSevereAsThreshold(Priority priority)方法
public class VisitorLogAppender extends DailyRollingFileAppender {
        @Override
    public boolean isAsSevereAsThreshold(Priority priority) {
        //只判断是否相等,而不判断优先级
        return this.getThreshold().equals(priority);
    }
}


这样,进行唯一判断,只有当Threshold与priority一致时,才进行输出,就实现了真正Log4j按照级别输出日志文件。


在log4j.properties中,将配置文件作如下修改:


### VisitorLog ###
log4j.appender.vs=com.xinniu.log4j.VisitorLogAppender
log4j.appender.vs.File = ../logs/testXinniuLogs-visit.log
log4j.appender.vs.Append = true
log4j.appender.vs.Threshold = FATAL
log4j.appender.vs.layout=org.apache.log4j.PatternLayout
log4j.appender.vs.layout.ConversionPattern = %m%n


到此,即完成了按照Log4j按照日志级别输出到不同文件中的功能。


0 0