前面我们讲了log4j日志级别的定义。其中讲到了日志级别顺序这个概念。OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL。
简单来说,就是如果我的日志级别定义为INFO,那么DEBUG、TRACE的信息是不显示的。同理,定义为ERROR,那么WARN、INFO、DEBUG、TRACE都不显示了,下面我们通过程序向大家展示log4j日志级别是如何工作的。
public class Log4jDemo {
static Logger logger = Logger.getLogger(Log4jDemo.class,2);
public static void main(String[] args){
logger.setLevel(Level.INFO,2);
logger.fatal("Fatal Message!",2);
logger.error("Error Message!",2);
logger.warn("Warn Message!",2);
logger.info("Info Message!",2);
logger.debug("Debug Message!",2);
logger.trace("Trace Message!",2);
}
}我们日志级别定义为INFO,输出结果为
[FATAL] 2016-03-04 16:55:32,916(0) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:16): Fatal Message!
[ERROR] 2016-03-04 16:55:32,918(2) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:17): Error Message!
[WARN ] 2016-03-04 16:55:32,919(3) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:18): Warn Message!
[INFO ] 2016-03-04 16:55:32,919(3) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:19): Info Message!
下面我们把日志级别设置为ERROR,自己先想下应该输出什么?
[FATAL] 2016-03-04 16:57:12,033(1) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:16): Fatal Message!
[ERROR] 2016-03-04 16:57:12,035(3) --> [main] com.trs.log.Log4jDemo.main(Log4jDemo.java:17): Error Message!
log4j是如何工作的,是不是很好理解?
编程那点事
