1、自定义LogFileAppender类,继承DailyRollingFileAppender,实现Log4j按级别输出日志到不同文件。
package com.liying.mango.common.interceptor; import org.apache.log4j.DailyRollingFileAppender; import org.apache.log4j.Priority; public class LogFileAppender extends DailyRollingFileAppender { @Override public boolean isAsSevereAsThreshold(Priority priority) { return this.getThreshold().equals(priority); } }
2、log4j.properties配置文件
log4j.rootLogger=info, stdout, info, error, fileout ## 定义控制台日志管理器 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n ## 定义INFO和ERROR级别文件输出日志管理器 log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender log4j.appender.fileout.File=/usr/logs/pear/all.log log4j.appender.fileout.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n ## 定义INFO级别文件输出日志管理器 log4j.logger.info=com.liying.mango.common.interceptor.LogFileAppender ## 每天产生一个日志文件,将日志信息输出到一个日志文件,并且每天输出到一个新的日志文件 log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=/usr/logs/pear/info.log ## 定义ERROR级别文件输出日志管理器 log4j.logger.error=com.liying.mango.common.interceptor.LogFileAppender log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=/usr/logs/pear/error.log
3、log4j.properties配置文件--日志文件按固定大小自动分割
log4j.rootLogger=info, stdout, info, error, fileout ## 定义控制台日志管理器 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n ## 定义INFO和ERROR级别文件输出日志管理器 ##每一天产生1个日志文件 ##log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender log4j.appender.fileout=org.apache.log4j.RollingFileAppender log4j.appender.fileout.File=/home/liying/logs/pear/all.log log4j.appender.fileout.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n ##当文件大小超过20MB时,将原来的文件名改为*.log.1,再使用*.log接收新的日志记录。此处保留10000个备份文件。 log4j.appender.fileout.MaxFileSize=20MB log4j.appender.fileout.MaxBackupIndex=10000 log4j.appender.fileout.Append=true ## 定义INFO级别文件输出日志管理器 log4j.logger.info=com.liying.peach.common.interceptor.LogFileAppender ## 每天产生一个日志文件,将日志信息输出到一个日志文件,并且每天输出到一个新的日志文件 log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=/home/liying/logs/peach/info.log ## 定义ERROR级别文件输出日志管理器 log4j.logger.error=com.liying.peach.common.interceptor.LogFileAppender log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p %d %t] %l **** %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=/home/liying/logs/peach/error.log