log4j 1.2 配置总结
首先贴一个properties的配置文件,再来解释下参数的意义吧
# Global logging configuration log4j.rootLogger=ERROR,stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n # Rolling log file output... log4j.appender.fileout=org.apache.log4j.DailyRollingFileAppender log4j.appender.fileout.File=${catalina.base}/logs/common/common.log
log4j.appender.fileout.DatePattern='.'yyyy-MM-dd log4j.appender.fileout.layout=org.apache.log4j.PatternLayout log4j.appender.fileout.layout.ConversionPattern=%d %p [%c] - %m%n #service log4j.logger.com.service= DEBUG, service log4j.appender.service = org.apache.log4j.RollingFileAppender log4j.appender.service.MaxFileSize=5mb log4j.appender.service.Append=true
log4j.appender.fileout.MaxBackupIndex=10 log4j.appender.service.File=${catalina.base}/logs/service.log log4j.appender.service.layout=org.apache.log4j.PatternLayout log4j.appender.service.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n #system log4j.logger.com.system= DEBUG, system log4j.appender.system= org.apache.log4j.RollingFileAppender log4j.appender.system.MaxFileSize=5mb log4j.appender.system.Append=true log4j.appender.system.File=${catalina.base}/logs/system.log log4j.appender.system.layout=org.apache.log4j.PatternLayout log4j.appender.system.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n
1 . 日志输出 level 一般有6种:trace,debug,info,warn,error,fatal,级别依次升高,但一般常用中间四种
2. 首先定义logger名称,相关配置都以名称为区分
#配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
或者,使用带包名的继承配置
log4j.logger.com.service= [ level ], service
log4j.logger.com.system= [ level ], system
由于Log4j中Logger具有java的继承特性,所以在这个实例中,可以使‘com.service’包下的所有类都可以使用Appender service将[ level ]级别以上的信息输出
3. Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender #控制台 org.apache.log4j.FileAppender #文件 org.apache.log4j.DailyRollingFileAppender #每天产生一个日志文件 org.apache.log4j.RollingFileAppender #文件大小到达指定尺寸时产生一个新文件 org.apache.log4j.WriterAppender #将日志信息以流格式发送到任意指定的地方
4. Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout #以HTML表格形式布局 org.apache.log4j.PatternLayout #可以灵活地指定布局模式 org.apache.log4j.SimpleLayout #包含日志信息的级别和信息字符串 org.apache.log4j.TTCCLayout #包含日志产生的时间、线程、类别等等信息
5. Layout.ConversionPattern:
%m #输出代码中指定的消息 %p #输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL %r #输出自应用启动到输出该log信息耗费的毫秒数 %c #输出所属的类目,通常就是所在类的全名 %t #输出产生该日志事件的线程名 %n #输出一个回车换行符 %d #输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS} %l #输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
6. Append=true:true表示消息增加到指定文件中,false则将消息覆盖指定的文件内容,默认值是true
7. File 输出日志文件路径和名称
8. DatePattern DailyRollingFileAppender时使用
DatePattern=''.''yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下: 1)''.''yyyy-MM: 每月 2)''.''yyyy-ww: 每周 3)''.''yyyy-MM-dd: 每天 4)''.''yyyy-MM-dd-a: 每天两次 5)''.''yyyy-MM-dd-HH: 每小时 6)''.''yyyy-MM-dd-HH-mm: 每分钟
9. MaxFileSize RollingFileAppender时使用,一旦日志到达一定大小,生成一个新文件
MaxBackupIndex RollingFileAppender时使用, 表示只保存对应个数个备份文件。