log4j.properties配置文件详解
log4j.rootLogger=INFO, stdout, R
#表示将INFO级别的日志输出到stdout和R这两个目的地
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#定义名为stdout的输出端是哪种类型,可以是:
org.apache.log4j.ConsoleAppender(控制台);
org.apache.log4j.FileAppender(文件);
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件);
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件);
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)。
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#定义名为stdout的输出端的layout是哪种类型,可以是:
org.apache.log4j.HTMLLayout(以HTML表格形式布局);
org.apache.log4j.PatternLayout(可以灵活地指定布局模式);
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串);
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。
log4j.appender.stdout.layout.ConversionPattern=[QC] %d{yyyy-MM-dd HH:mm:ss:SSS} %p [%t] %C.%M(%L) | %m%n
#如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
[QC]是log信息的开头,可以为任意字符,一般为项目简称;
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
%t 输出产生该日志事件的线程名;
%c 输出所属的类目,通常就是所在类的全名;
%M 输出打印该条日志的方法名;
%m 输出代码中指定的消息;
%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
%l 输出日志事件的发生位置,及在代码中的行数;
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#定义名为R的输出端的类型为每天产生一个日志文件。
log4j.appender.R.File=D:\Tomcat 5.5\logs\qc.log
#定义名为R的输出端的文件名为D:\Tomcat 5.5\logs\qc.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#同上,表示R的layout采用PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
#同上,表示R的日志输入格式
log4j.logger.com.neusoft=DEBUG
#指定com.newsoft包下的日志输出级别为DEBUG
log4j.logger.com.opensymphony.oscache=ERROR
#指定com.opensymphony.oscache包下的日志输出级别为ERROR
总结:
1、log4j每个类的作用:
Logger类:完成日志记录,设置日志信息级别
Appender类:决定日志去向,终端、DB、硬盘
Layout类:决定日志输出的样式,例如包含当前线程、行号、时间
2、日志级别:
trace<debug<info<warn<error<fatal
trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。一般不用。
debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。
info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。
warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。
error: 错误信息。用的也比较多。
fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。
### set log levels ###
log4j.rootLogger=INFO,STDOUT
log4j.logger.com.jd.ipc=INFO,A,B
log4j.logger.com.google.code.shardbatis.plugin.ShardPlugin=INFO,SQL
log4j.logger.analysisLog=INFO,ANALYSIS
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=%d{yyyy-MM-dd HH:mm:ss} %p [%t][%l] - <%m>%n
log4j.appender.A=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A.File=/export/Logs/vrs.ls.jd.com/info/vrs_info.log
log4j.appender.A.Append=true
log4j.appender.A.Encoding=UTF-8
log4j.appender.A.DatePattern=yyyy-MM-dd
log4j.appender.A.Threshold=INFO
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t][%l] - <%m>%n
log4j.appender.B=org.apache.log4j.DailyRollingFileAppender
log4j.appender.B.File=/export/Logs/vrs.ls.jd.com/error/vrs_error.log
log4j.appender.B.Append=true
log4j.appender.B.Encoding=UTF-8
log4j.appender.B.DatePattern=yyyy-MM-dd
log4j.appender.B.Threshold=ERROR
log4j.appender.B.layout=org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t][%l] - <%m>%n
log4j.appender.SQL=org.apache.log4j.DailyRollingFileAppender
log4j.appender.SQL.File=/export/Logs/vrs.ls.jd.com/debug/vrs_sql.log
log4j.appender.SQL.Append=true
log4j.appender.SQL.Encoding=UTF-8
log4j.appender.SQL.DatePattern=yyyy-MM-dd
log4j.appender.SQL.Threshold=INFO
log4j.appender.SQL.layout=org.apache.log4j.PatternLayout
log4j.appender.SQL.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t][%l] - <%m>%n
log4j.appender.ANALYSIS=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ANALYSIS.File=/export/Logs/vrs.ls.jd.com/behavior/vrs_analysis.log
log4j.appender.ANALYSIS.Append=true
log4j.appender.ANALYSIS.Encoding=UTF-8
log4j.appender.ANALYSIS.DatePattern=yyyy-MM-dd
log4j.appender.ANALYSIS.Threshold=INFO
log4j.appender.ANALYSIS.layout=org.apache.log4j.PatternLayout
log4j.appender.ANALYSIS.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%t] %m %n
# auditLog 审计日志打印设置
log4j.logger.com.jd.ipc.ia.audit=info,audit
log4j.additivity.com.jd.ipc.ia.audit=false
log4j.appender.audit=org.apache.log4j.DailyRollingFileAppender
log4j.appender.audit.File=/export/Logs/vrs.ls.jd.com/info/vrs_audit.log
log4j.appender.audit.Append=true
log4j.appender.audit.Encoding=UTF-8
log4j.appender.audit.DatePattern=yyyy-MM-dd
log4j.appender.audit.Threshold=INFO
log4j.appender.audit.layout=org.apache.log4j.PatternLayout
log4j.appender.audit.layout.ConversionPattern=%m%n
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
log4j.logger.org.mybatis.example=INFO