`

使log4j不同level的日志输出到不同文件

 
阅读更多

对于一个大型系统,尤其是高访问量的web系统,要在一个记载了浩如烟海的info,甚至是debug日志信息的日志文件中检查那些重要的error或者fatal信息不是一件轻松的事,哪怕你用grep,那也是相当的被动的。如果我们能为同一个logger配置不同的file appender一个用于记载所有信息(对正式上线的系统一般是info level),另一个只记载error以上等级的那问题就解决了。log4j有这样控制属性吗,不常见,但是有^_^:
log4j.appender.errorfileout.Threshold = ERROR
xml格式的配置(放在appender标签中):<param name="Threshold" value="ERROR"/>

这样一来,ERROR及FATAL级别的信息就记录在errorfileout这个appender中了。下面给出一个较完整的配置文件例子:
log4j.rootLogger=DEBUG,stdout
log4j.logger.net.dxtop=DEBUG,fileout,errorfileout
#log4j.additivity.net.dxtop=false

#stdout appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n

#common file appender
log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=d:/logs/sys.log
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d [%t] (%F:%L) %-5p %c - %m%n
log4j.appender.fileout.MaxFileSize=100000KB
log4j.appender.fileout.MaxBackupIndex=200

#error file appender
log4j.appender.errorfileout=org.apache.log4j.RollingFileAppender
log4j.appender.errorfileout.File=d:/logs/sys_error.log
log4j.appender.errorfileout.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfileout.layout.ConversionPattern=%d [%t] (%F:%L) %-5p %c - %m%n
log4j.appender.errorfileout.MaxFileSize=100000KB
log4j.appender.errorfileout.Threshold = ERROR
log4j.appender.errorfileout.MaxBackupIndex=200

如果你不想ERROR和FATAL的放在一起,你可以参考此文章后面列出的参考文档,对大多数人来说,上面的配置方法就够用了。

另外一个不太常见的属性additivity觉得也很有用,参见上面文件中的:#log4j.additivity.net.dxtop=false
若该值为false,则net.dxtop这个logger的appender所输出的信息就不会写入到它的parent logger的appender中去。

参考文档:
http://jackgm.spaces.live.com/blog/cns!9722965D743EDAF9!774.entry
http://www.daniweb.com/forums/thread109937.html
分享到:
评论

相关推荐

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

     禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。...

    Log4j 学习笔记.doc

    Log4j 学习笔记. 1. Log4j的类图 2. Logger:日志写出器 1. Logger的输出方法 2. Logger的命名规则 ...5. 我自己的一个使用xml文件配置log4j环境的很简单的例子 6. Log4j的编码习惯 参考资料

    log4j2的配置案例,可直接使用

    配置了三个日志输出器,分别是控制台输出器“Console”以及三个文件输出器“debug_appender”、“info_appender”和“error_appender”。 控制台输出器只会输出级别为“info”及以上的日志信息,输出格式为“[%-5...

    aliyun-log-log4j-appender:aliyun-log-log4j-appender

    您可以通过Aliyun Log Log4j Appender将日志的目标位置设置为AliCloud Log Service。 AliCloud日志服务中的日志格式如下: level: ERROR location: ...

    blade-log:刀片服务器默认日志显示

    格式化日志输出 彩色日志打印 输出日志到文件 多种日志级别 不依赖第三方库 按文件大小切割 使用 加入依赖 &lt;groupId&gt;com.bladejava&lt;/groupId&gt; &lt;artifactId&gt;blade-log &lt;version&gt;0.1.6 配置 ...

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序...

    阿里云java源码-aliyun-log-log4j2-appender:aliyun-log-log4j2-appender

    阿里云java源码Log4j2 附加程序 阿里云日志 Log4j2 Appender Apache Log4j2 是对 Log4j 的升级,与其前身 Log4j 1.x 相比提供了重大改进。 可以通过Log4j2控制日志的目的地。 它可以是控制台、文件、GUI 组件、套接...

    springboot 日志配置文件 logback

    logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。 logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能。 ...

    aliyun-log-logback-appender

    Logback旨在作为流行的log4j项目的后继者。 您可以通过logback控制日志的目的地。 它可以是控制台,文件,GUI组件,套接字,NT事件日志,系统日志。 您也可以控制每个日志的输出格​​式。 您可以通过日志级别控制...

    应用分析监控平台 闪电狗.zip

    先配置将tomcat日志输出到log4j,下载tomcat-juli.jar到tomcat/bin,覆盖原来的jar,下载tomcat-util.jar到tomcat/lib,复制log4mongo-java ,flash-dog-api-log4j 和 mongo-java-driver ,log4j.properties到lib 2....

    Java LoggingAPI 使用方法

     Log4j中是通过log4j.properties这个配置文件控制日志的输出,java logging中是通过logging.properties文件完成类似的功能。  Logging.properties文件位于JDK安装路径的 jre/lib/目录下,直接上配置文件: ...

    logstash-integration-kafka:Kafka Integration for Logstash,提供输入和输出插件

    Kafka日志不遵守Log4J2根记录器级别,默认为INFO,对于其他级别,必须在Logstash部署的log4j2.properties文件中显式设置日志级别,例如: logger.kafka.name=org.apache.kafka logger.kafka.appenderRef.console....

    ant1.9资源

    它包括message、file、append和level四个属性,举例如下: ,Amigo" file="logs/system.log" append="true"&gt; 四. 利用Ant构建和部署Java工程 Ant可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松...

    Maven权威指南 很精典的学习教程,比ANT更好用

    4. Maven Writing Conventions 5. Acknowledgements 1. 介绍 Apache Maven 1.1. Maven... 它是什么? 1.2. 约定优于配置(Convention Over Configuration) 1.3. 一个一般的接口 1.4. 基于Maven插件的全局性...

Global site tag (gtag.js) - Google Analytics