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: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。