log4j主要提供RollingFileAppender和DailyRollingFileAppender两种方式将日志记录输出到文件。RollingFileAppender按log文件最大长度限度生成新文件,DailyRollingFileAppender按日期生成新文件。
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.MaxFileSize=50MB
log4j.appender.A2.MaxBackupIndex=10
log4j.appender.A2.File=${logDir}auto.log
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r %d{yyyy-MM-dd HH\:mm\:ss,SSS} [%t] %-5p %c - %m%n
上面的示例是使用RollingFileAppender的写法,将会在logDir所指定的目录下生成auto.log文件,当文件大小超过50MB时,将原来的文件名改为auto.log.1,再使用auto.log接收新的日志记录。此处保留10个备份文件。
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=${logDir}fms_foreground.log
log4j.appender.A2.DatePattern='.'yyyyMMdd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r %d{yyyy-MM-dd HH\:mm\:ss,SSS} [%t] %-5p %c - %m%n
上面的示例是使用DailyRollingFileAppender的写法,配置完成的当天,会在logDir所指定的目录下生成fms_foreground.log文件,比如今天是2013-11-07,到明天这个文件将更名为fms_foreground.log.2013-11-08。
实例:
1、每天一个文件夹
log4j.rootLogger=info,DFILE,stdout
#log4j.rootLogger=info,A1,DFILE
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ssS} %m%n
#A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ssS} %m%n
log4j.appender.DFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DFILE.Threshold=DEBUG
log4j.appender.DFILE.File={path}/adsb_daily.log
log4j.appender.DFILE.Append=true
log4j.appender.DFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.DFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DFILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ssS} %m%n
2、文件大小
log4j.rootLogger=info,DFILE,stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ssS} %m%n
log4j.appender.DFILE=org.apache.log4j.RollingFileAppender
log4j.appender.DFILE.MaxFileSize=1MB
log4j.appender.DFILE.MaxBackupIndex=10
log4j.appender.DFILE.Threshold=DEBUG
log4j.appender.DFILE.File={path}/adsb_daily.log
log4j.appender.DFILE.Append=true
log4j.appender.DFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.DFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DFILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ssS} %m%n