log4j输出日志级别控制

  • Post author:
  • Post category:其他


log4j输出日志级别控制



log4j.logger.XX  ==> log4j.rootLogger


log4j.appender.XX.Threshold决定了最低接收级别


也就是说rootLogger首先决定所有log的输出级别,而log4j.logger.XX是对XX路径下的jar包的输出级别的修改,直接覆盖rootLogger


但是对于不同的输出口,他们的接收级别是不同的。

举例1:

log4j.appender.XX.Threshold门槛高于log4j.logger.XX时,

log4j.logger.com.test=debug

log4j.appender.A.Threshold=INFO

log4j.appender.B.Threshold=WARN

那么就算设定com.test输出的级别是debug,但是A只接收INFO级别以上的log,而B只接收WARN级别以上的log

举例2:

log4j.appender.XX.Threshold门槛低于log4j.logger.XX时,

log4j.logger.com.test=info

log4j.appender.A.Threshold=DEBUG

log4j.appender.B.Threshold=WARN

那么com.test只输出info级别的,而A下设定的是debug,那么com.test输出的所有的日志在A下可以全部显示(当然是info以上的,因为com.test只给出了info以上的)。而在B下设定是warn,虽然com.test输出info级别以上的log给B,但是B只接收warn以上的log。

通过这样的方式配置,可以限定在不同的输出口过滤不同等级的日志。

应用举例需求:


我们不太想输出一些第三方jar的日志,但是error级别以上的我们需要,我们想输出我们自己的包下debug以上级别的日志,但是在控制台我想看到所有的,而在日志文件下,我却只想写入warn级别以上的日志。对于这样的情况如何配置呢?

这个时候我们就根据依据的来配置一下log4j

首先来点背景设定

我们自己的jar包都是com.test开头

A代表控制台输出

B代表文件输出

当然那些都只是一个命名

好,我们开始。首先所有的第三方jar都不太想看到输出日志,但是error的级别以上的需要

log4j.rootLogger=error, A,B

这句的意思就是设定所有log输出给A,B的等级为error

然后,我们想输出我们自己的包下debug以上级别的日志。

log4j.logger.com.test=debug

这句是设定com.test包下的所有log输出级别为debug,这里的设定直接覆盖了rootLogger对com.test包的作用。

最后,在控制台我想看到所有的,而在日志文件下,我却只想写入warn级别以上的日志。

log4j.appender.A=org.apache.log4j.ConsoleAppender

#config A position output contain DEBUG level and up

log4j.appender.A.Threshold=DEBUG

log4j.appender.A.layout=org.apache.log4j.PatternLayout

log4j.appender.A.layout.ConversionPattern=%d [%-5p] %l:%t – %m %n

#in the daily files

log4j.appender.B=org.apache.log4j.DailyRollingFileAppender

log4j.appender.B.Threshold=WARN

log4j.appender.B.File=${root.path}/log/MyProject.log

log4j.appender.B.DatePattern=’.’yyyy-MM-dd’.log’

log4j.appender.B.layout=org.apache.log4j.PatternLayout

log4j.appender.B.layout.ConversionPattern=%d [%-5p] %l:%t – %m %n

和日志级别无关的代码就不解释了

log4j.appender.A.Threshold=DEBUG

log4j.appender.B.Threshold=WARN

表示A的接收级别为debug,而B的接收级别为warn。这样,A就可以看到debug以上的所有日志,而写入B的只有warn级别以上的日志。



版权声明:本文为zlfprogram原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。