log4j日志记录简析
来源:互联网 发布:啤酒杯 知乎 编辑:程序博客网 时间:2024/05/01 06:49
log4j的日志系统包含两个主要概念:Logger与Appender,前者负责触发日志记录动作,后者决定日志输出至何处。
各个Logger实例之间可能存在父子关系,所有实例都有一个共同的root Logger实例,如下文的第一行的rootCategory就是root Logger实例。
log4j示例文件如下:
log4j.rootCategory=info,stdout# CONSOLE appender not used by defaultlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c{1} %M %L - %m%n# File appenderlog4j.appender.perf=org.apache.log4j.RollingFileAppenderlog4j.appender.perf.layout=org.apache.log4j.PatternLayoutlog4j.appender.perf.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%nlog4j.appender.perf.file=Z:/logs/snc-perf-test.loglog4j.appender.perf.MaxFileSize=40MBlog4j.appender.perf.MaxBackupIndex=40log4j.appender.perf.append=truelog4j.appender.perf.ImmediateFlush=truelog4j.appender.druid=org.apache.log4j.RollingFileAppenderlog4j.appender.druid.layout=org.apache.log4j.PatternLayoutlog4j.appender.druid.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%nlog4j.appender.druid.file=Z:/logs/snc-perf-druid-test.loglog4j.appender.druid.MaxFileSize=40MBlog4j.appender.druid.MaxBackupIndex=40log4j.appender.druid.append=truelog4j.appender.druid.ImmediateFlush=truelog4j.logger.com.simiam.snc.perf=debug,perflog4j.logger.org.springframework=INFO,perflog4j.logger.druid.sql=info,druidlog4j.logger.druid.sql.DataSource=info,druidlog4j.logger.druid.sql.Connection=info,druidlog4j.logger.druid.sql.Statement=debug,druidlog4j.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日志记录简析
- 【Log4J】Log4j记录日志配置
- log4j 日志记录
- JAVA日志记录,LOG4J
- Log4j 记录error 日志
- 服务端日志记录log4j
- JAVA log4j记录日志
- 使用log4j记录日志
- log4j日志记录
- 使用log4j记录日志
- log4j日志分类记录
- Log4j日志记录
- 使用log4j记录日志
- log4j日志记录
- 日志记录-log4j
- Log4j 记录error 日志
- log4j-java日志记录
- log4j日志记录级别
- 内存数据库 HSQLDB
- 转一些SIFT代码链接
- 自制小型登录界面
- js加密的密文PHP解密(AES算法)
- 2013年最新传智播客最新.net/C#就业班全套教程分享下载
- log4j日志记录简析
- &&的短路原理
- ExtJS MVC架构讲解
- Notepad++中的复活节彩蛋(easter egg)
- Ubuntu文件标示解释
- 黑马程序员_Java基础知识总结
- Linked List Cycle
- 2013年传智播客视频教程.net/ios/php/java/安卓/C++/平面设计/c全套教程分享1
- Image uImage与zImage的区别【转】