码迷,mamicode.com
首页 > 其他好文 > 详细

log4j日志记录简析

时间:2014-06-16 11:27:02      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:class   blog   code   com   使用   文件   

log4j的日志系统包含两个主要概念:Logger与Appender,前者负责触发日志记录动作,后者决定日志输出至何处。
各个Logger实例之间可能存在父子关系,所有实例都有一个共同的root Logger实例,如下文的第一行的rootCategory就是root Logger实例。

log4j示例文件如下:

log4j.rootCategory=info,stdout


# CONSOLE appender not used by default
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c{1} %M %L - %m%n


# File appender
log4j.appender.perf=org.apache.log4j.RollingFileAppender
log4j.appender.perf.layout=org.apache.log4j.PatternLayout
log4j.appender.perf.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.perf.file=Z:/logs/snc-perf-test.log
log4j.appender.perf.MaxFileSize=40MB
log4j.appender.perf.MaxBackupIndex=40
log4j.appender.perf.append=true
log4j.appender.perf.ImmediateFlush=true


log4j.appender.druid=org.apache.log4j.RollingFileAppender
log4j.appender.druid.layout=org.apache.log4j.PatternLayout
log4j.appender.druid.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n
log4j.appender.druid.file=Z:/logs/snc-perf-druid-test.log
log4j.appender.druid.MaxFileSize=40MB
log4j.appender.druid.MaxBackupIndex=40
log4j.appender.druid.append=true
log4j.appender.druid.ImmediateFlush=true


log4j.logger.com.simiam.snc.perf=debug,perf
log4j.logger.org.springframework=INFO,perf


log4j.logger.druid.sql=info,druid
log4j.logger.druid.sql.DataSource=info,druid
log4j.logger.druid.sql.Connection=info,druid
log4j.logger.druid.sql.Statement=debug,druid
log4j.logger.druid.sql.ResultSet=info,druid

上面的配置文件提供了3个appender(什么是appender请google),一个将日志打印至stdout,两个保存文件。

文件中的第一行定义的日志root Logger实例:log4j.rootCategory=info,stdout ,该实例关联了stdout appender,如果没有为特定的Logger实例指定相应的appender,所有Logger实例将会使用rootCategory实例来输出日志信息(这里则只输出至console)。

最下面几行以log4j.logger开头的行指定了多个Logger实例,每个实例指定了日志级别,以及与该Logger实例相关的日志最终将使用哪个appender输出。


应用中的具体logger实例在执行相应的日志方法时【如logger.info("log some message")】则会找出该实例关联的appender并输出日志(如果logger未关联appender则不会输出),然后向上获取logger.parent再调用parent的appender输出日志,如此循环直至搜索至root。

比如如下Logger实例:

log4j.logger.druid.sql.DataSource=info,druid

会将相关日志输出至druid appender所关联的文件snc-perf-druid-test.log中,同时也会在console中打印日志信息(向上搜索至root,root关联stdout appender)。

log4j日志记录简析,布布扣,bubuko.com

log4j日志记录简析

标签:class   blog   code   com   使用   文件   

原文地址:http://blog.csdn.net/cza55007/article/details/30051461

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!