【将不同级别日志诀别输出到文件】log4j配置

【将不同级别日志分别输出到文件】log4j配置
源代码
     public boolean isAsSevereAsThreshold(Priority priority)  
      {  
          return threshold == null || priority.isGreaterOrEqual(threshold);  
      }  



重写
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;

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

}


log4j.rootLogger=info,stdout,info,debug,error  
#输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n  

#输出log.info日志 按照日期分割文件
log4j.logger.info=info
log4j.appender.info=com.LogAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %c - %m%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold = INFO
log4j.appender.info.append=true
log4j.appender.info.File=C:/data/logs/tomcat/info.log

#输出log.debug日志 按照日期分割文件
log4j.logger.debug=debug
log4j.appender.debug=com.LogAppender
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %c - %m%n
log4j.appender.debug.datePattern='.'yyyy-MM-dd
log4j.appender.debug.Threshold = DEBUG
log4j.appender.debug.append=true
log4j.appender.debug.File=C:/data/logs/tomcat/debug.log

#输出log.error日志 按照文件大小分割日志,最多10个日志
#ConversionPattern会打印出catch语句块儿中,抛出异常的行号
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.RollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p %c (%F\:%L) \: %m%n
log4j.appender.error.Threshold = ERROR
log4j.appender.error.append=true
log4j.appender.error.File=C:/data/logs/tomcat/error.log
log4j.appender.error.MaxFileSize=100KB
log4j.appender.error.MaxBackupIndex=10





log4j是apache基金会的一个项目,日志记录器(Logger)是日志处理的核心组件,log4j具有7种级别(Level).
DEBUG Level: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.
INFO level:  表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.
WARN level:  表明会出现潜在错误的情形,就是显示警告信息.
ERROR level: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.
FATAL level: 指出每个严重的错误事件将会导致应用程序的退出.
ALL level:   是最低等级的,用于打开所有日志记录.
OFF level:   是最高等级的,用于关闭所有日志记录.

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。

如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。