`

Log4J的rootLogger的理解

阅读更多
1 rootLogger
  总是存在一个rootLogger,即使没有显示配置也是存在的,并且默认输出级别为DEBUG
  所有其他的Logger都默认继承自rootLogger
2 自定义的Logger(子Loggger)继承自rootLogger
  格式如下:
 
引用
log4j.logger.A.B.C

  这样定义后其实建立了3个logger实例,它们分别是"A"、"A.B"、"A.B.C"。每次我们在系统中取得logger时,并不是新建实例,这些实例是系统启动的时候就按照配置文件初始化好的(也可能时第一次引用的时候建立的,然后缓存其实例供以后使用,这部分还没有时间研究)。

调用:
  Logger logger = Logger.getLogger("A.B")
3 限制appender叠加性
例1:
引用
log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console

对于logger A.B输出的任何日志会往控制台输出三次,原因是A.B继承A的以及A的父logger的所有appender,
这种继承关系仅仅是把父logger的appender添加到自己的appender列表中,父logger的输出level不会影响
子logger的输出。

例2:限制appender叠加
引用
log4j.rootLogger=DEBUG, Console
log4j.logger.A=DEBUG, Console
log4j.logger.A.B=INFO, Console
log4j.additivity.A.B=false

logger A.B的日志仅会输出到自己Console中,不会继承任何父logger的appender。

完整的配置如下:

log4j.rootLogger=DEBUG,Console,RollingFile

#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d %-5p [%c{5}] - %m%n

#RollingFile
log4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingFile.File=../logs/mylogger.log
log4j.appender.RollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#log4j.logger.java.sql=DEBUG
#自定义的 Xconsole
log4j.logger.sd.liveker=ERROR,Xconsole
#不继承父类的定义
log4j.additivity.sd.liveker=false

#Xconsole
log4j.appender.Xconsole=org.apache.log4j.ConsoleAppender
log4j.appender.Xconsole.layout=org.apache.log4j.PatternLayout
log4j.appender.Xconsole.layout.ConversionPattern=%d %-5p [%c{5}] - %m%n





4 控制appender的输出级别
若想对输出到appender中的日志级别进行限制的话,就需要用到threshold来控制。
log4j.threshold=ERROR 用来控制所有的appender,即输出到所有appender的日志,
不管原来是什么级别的,都不能低于threshold所规定的级别。

log4j.appender.Console.threshold=ERROR 用来控制指定的appender的输出级别。

参考:
http://www.cnblogs.com/Fskjb/archive/2011/01/29/1947592.html
分享到:
评论

相关推荐

    log4j jar包

    log4j.rootLogger=INFO, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=/var/log/app.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE....

    SSM整合中的Log4j日志的配置详情

    log4j.rootLogger=DEBUG,console,file log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console....

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

    在这个配置中,`log4j.rootLogger`定义了全局的日志级别,这里是DEBUG。`log4j.logger.com.example.MyClass`则指定了`com.example.MyClass`这个类的日志级别为WARN,这意味着只有WARN、ERROR和FATAL级别的日志会被...

    Log4j将System.out搞到log4j中输出四

    在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...

    log4j示例项目

    log4j.rootLogger=DEBUG, stdout, FILE log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j....

    log4j-1.2.17.jar下载

    log4j.rootLogger=INFO, Console, File log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j...

    log4j-1.2.11jar和log4j.properties配置文件

    log4j.rootLogger=INFO, stdout, FILE # 控制台输出 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j....

    log4j-1.2.16下载

    log4j.rootLogger=DEBUG, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=logs/app.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE....

    LOG4J 配置方式和讲解

    log4j.rootLogger=debug,stdout,log_file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j...

    Log4j jar包及其配置方法

    log4j.rootLogger=INFO, stdout, file # 定义Console Appender(控制台输出) log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=...

    log4j-1.2.15.jar

    log4j.rootLogger=WARN, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=/path/to/app.log log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE....

    log4j.properties配置详解

    1. **根日志类别** (`log4j.rootCategory`): 设置日志的默认级别以及日志输出的目标(控制台和文件)。例如: ```properties log4j.rootCategory=INFO,stdout,R ``` 这里设置了默认的日志级别为`INFO`,同时输出...

    log4j使用教程(详解)

    log4j.rootLogger=DEBUG, FILE log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=/path/to/logfile.log log4j.appender.FILE.Append=true log4j.appender.FILE.layout=org.apache....

    log4j-1.2.17.jar及配置文件

    log4j.rootLogger=INFO, stdout, file # 定义输出到控制台的Appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache...

    log4j的eclipse工程,输出到文件的方式配置log4j

    log4j.rootLogger=DEBUG, FILE # 配置Console Appender log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=logs/app.log log4j.appender.FILE.Append=true log4j.appender.FILE.layout=...

    log4j jarjar包

    log4j.rootLogger=INFO, console, file # 配置控制台Appender log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log...

    log4j使用jar包和log4j.properties配置文件

    - `log4j.rootLogger`定义了日志的默认级别(DEBUG)和输出目的地(stdout和R,分别代表控制台和文件)。 - `log4j.appender.stdout`配置了控制台输出,使用`ConsoleAppender`,并设置了输出格式。 - `log4j....

    log4j.properties 的使用详解(含log4j.properties)

    1. **全局配置**:设置默认的logger级别,例如`log4j.rootLogger=DEBUG, FILE`,表示根logger的级别为DEBUG,并将日志输出到FILE指定的appender。 2. **Appender配置**:定义日志输出的目的地,如控制台、文件、...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    注意,你还可以根据需要自定义日志级别,例如将`log4j.rootLogger`的级别设置为`DEBUG`,以便记录更详细的信息。此外,可以通过调整`DatePattern`以改变日志文件的命名规则,例如按小时或分钟滚动。 在实际应用中,...

    log4j_jar包跟教程说明

    log4j.rootLogger=DEBUG, stdout, FILE log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log...

Global site tag (gtag.js) - Google Analytics