Use of log4j

Log4j usage tutorial: http://www.codeceo.com/article/log4j-usage.html
Configuring Log4j: http://blog.csdn.net/azheng270/article/details/2173430/
Tomcat output size control of catalina.out : http://blog.csdn.net/attagain/article/details/38639007
Tomcat access log: http://blog.csdn.net/zhuying_linux/article/details/7760250
Tomcat log system detailed explanation: http://blog. csdn.net/xysoul/article/details/50347285
Detailed explanation of Log4j initialization: http://donald-draper.iteye.com/blog/2332385
Detailed explanation of Log4j log output: http://donald-draper.iteye.com/admin/blogs /2332395
Before testing, to download log4j, jar package, mine is log4j-1.2.17.jar
test main class:
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=========");
   }
}

There are two configuration methods for log4j, one is XML, the other is java properties file properties, my configuration method is
log4j.properties, the details are as follows:

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

Console output:
[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========
File output:
[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== =======
Summary:
As can be seen from the above, when the Threshold of the appender is control, the rootLogger is inherited. When it is not null, the output level is based on the higher level of the appender and the rootLogger.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327042091&siteId=291194637