`

log4j级别输出

阅读更多
我们知道:
log4j.logger.XX cover ==> 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级别以上的日志。
分享到:
评论

相关推荐

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    Log4j2实现不同线程不同级别日志输出到不同的文件中 源码+log4j jar包

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    log4j-如何控制指定类,包的日志输出级别: https://blog.csdn.net/u011479200/article/details/102476242

    log4j相关jar

    log4j相关支持的jar Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条...

    log4j按功能保存日志

    log4j按功能保存日志

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

    官网原版log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    Log4j日志管理系统简单使用说明

    Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...

    log4J-1.2.17.zip

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的...

    log4j_properties配置详解

    ###log4j.appender.D=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File =logs/error.log ## 异常日志文件名log4j.appender.D.Append =truelog4j.appender.D.Threshold =ERROR ##...

    org.apache.log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    Log4j按级别输出日志到不同文件的实现方法

    下面小编就为大家带来一篇Log4j按级别输出日志到不同文件的实现方法。

    打印日志等异常处理,使用Log4j的配置

    #如果一条日志信息的级别大于等于配置文件的级别,就记录配置输出源所对应的辅助类:log4j.appender.输出源名称=类名,如果输出到文件就写FileAppender #指定文件名 Tomcat的根目录: #指定布局方式(消息放入文件...

    log4j 不同级别 不同文件 发送邮件配置

    log4j 通过配置完成多级别输出到多文件中,并且可以发送邮件到指定目的地。

    Log4j1.2.16官方文档和jar包

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。  官方站点:http://logging.apache.org/log4j/  Log4j是Apache的一个开放源代码...

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    Log4J详细文档.doc

    Log4J(Log for java)是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台、文件、CUI组件、NT的事件记录器;还可以控制每一条日志输出格式。此外,通过...

    log4j-1.2.16.zip

    java 日志log4j加载 Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条...

    log4j的jar包以及修改控制台的输出信息

    log4j的jar包以及如何修改控制台输出信息的级别

    Log4j使用手册

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

Global site tag (gtag.js) - Google Analytics