log4j的使用

Log4j使用教程: http://www.codeceo.com/article/log4j-usage.html
配置Log4j: http://blog.csdn.net/azheng270/article/details/2173430/
Tomcat输出catalina.out的大小控制 : http://blog.csdn.net/attagain/article/details/38639007
tomcat访问日志: http://blog.csdn.net/zhuying_linux/article/details/7760250
Tomcat日志系统详解: http://blog.csdn.net/xysoul/article/details/50347285
Log4j初始化详解: http://donald-draper.iteye.com/blog/2332385
Log4j日志输出详解: http://donald-draper.iteye.com/admin/blogs/2332395
在测试前,要下载log4j,jar包,我的是log4j-1.2.17.jar
测试主类:
package org;
import org.apache.log4j.Logger;

public class testLog4j {
   private static Logger log = Logger.getLogger(testLog4j.class); 
   public static void main(String[] args) {
	   log.debug("=======test root=========");
	   log.info("========test daily level info=========");
	   log.warn("========test warn=========");
	   log.error("========test error=========");
	   log.fatal("========test fatal=========");
   }
}

log4j有两种配置方式,一种为XML,一种为java属性文件properties,我的配置方式为
log4j.properties,具体内容如下:

log4j.rootLogger = DEBUG,stdout,D


log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Encoding=GBK
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %c %l %m%n
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} %c %m%n

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = F://logs/log.log
log4j.appender.D.Append = true
### when the appender Threshold is null, extend from rootLogger,
### when the appender Threshold is exist, compare the Threshold with the level of rootLogger
### set the higher level
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = [%-5p]  %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - %c%m%n


#log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
#log4j.appender.E.File =F://logs/error.log
#log4j.appender.E.Append = true
#log4j.appender.E.Threshold = ERROR
#log4j.appender.E.layout = org.apache.log4j.PatternLayout
#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

控制台输出:
[DEBUG] 2016-10-22 11:52:52,084 org.testLog4j =======test root=========
[INFO ] 2016-10-22 11:52:52,084 org.testLog4j ========test daily level info=========
[WARN ] 2016-10-22 11:52:52,084 org.testLog4j ========test warn=========
[ERROR] 2016-10-22 11:52:52,084 org.testLog4j ========test error=========
[FATAL] 2016-10-22 11:52:52,084 org.testLog4j ========test fatal=========
文件输出:
[ERROR]  2016-10-22 11:52:52  [ main:0 ] - org.testLog4j========test error=========
[FATAL]  2016-10-22 11:52:52  [ main:0 ] - org.testLog4j========test fatal=========
总结:
从上面可以看出,当appender的Threshold为控制,则继承rootLogger,当不为null时,输出等级,以appender和rootLogger等级高的为准。

猜你喜欢

转载自donald-draper.iteye.com/blog/2332315