log4j不同级别日志分不同文件记录
2013-01-18 10:56
357 查看
最近被问到一个log4j分不同文件记录不同级别日志的问题,一下给难倒了,以前没有留意过log4j的具体功能,只是了解了下。如今自己还差的远啊。╮(╯▽╰)╭。。。
参考了前段时间的那个项目中的log4j配置文件,发现那个只不过将不同模组的日志记录到不同的日志文件。并未按日志级别分文件记录。自己在动手调试的过程中结合查阅网上很多博文,终于以xml格式配置的方式调通。具体配置如下:
Xml代码
只不过是在配置appender的时候配置了一个LevelRangeFilter的filter,并配置LevelMax与LevelMin(最大最小级别),加个测试类:
Java代码 :
用log4j.properties配置时,记录还是有问题,
log4j.rootLogger=INFO,console,info,warn,error,fatal
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.Encoding=GBK
log4j.appender.console.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold=INFO
log4j.appender.info.append=true
log4j.appender.info.Encoding=GBK
log4j.appender.info.File=D:/log/bpsoft_info.log
#log4j.logger.debug=debug
#log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.debug.layout=org.apache.log4j.PatternLayout
#log4j.appender.debug.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
#log4j.appender.debug.datePattern='.'yyyy-MM-dd
#log4j.appender.debug.Threshold=DEBUG
#log4j.appender.debug.append=true
#log4j.appender.debug.Encoding=GBK
#log4j.appender.debug.File=D:/log/bpsoft_debug.log
log4j.logger.warn=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.warn.datePattern='.'yyyy-MM-dd
log4j.appender.warn.Threshold=WARN
log4j.appender.warn.append=true
log4j.appender.warn.Encoding=GBK
log4j.appender.warn.File=D\:/log/bpsoft_warn.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold=ERROR
log4j.appender.error.append=true
log4j.appender.error.Encoding=GBK
log4j.appender.error.File=D\:/log/bpsoft_error.log
log4j.logger.fatal=fatal
log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fatal.layout=org.apache.log4j.PatternLayout
log4j.appender.fatal.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH\:mm\:ss}] [ Class \= %C | Method \= %M | Line \= %L ] | %m |%n
log4j.appender.fatal.datePattern='.'yyyy-MM-dd
log4j.appender.fatal.Threshold=FATAL
log4j.appender.fatal.append=true
log4j.appender.fatal.Encoding=GBK
log4j.appender.fatal.File=D:/log/bpsoft_fatal.log
------------------------
-----------------------------------------------------------
参考了前段时间的那个项目中的log4j配置文件,发现那个只不过将不同模组的日志记录到不同的日志文件。并未按日志级别分文件记录。自己在动手调试的过程中结合查阅网上很多博文,终于以xml格式配置的方式调通。具体配置如下:
Xml代码
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> </appender> <appender name="traceLog4Debug" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/traceLog4Debug.log"/> <param name="maxFileSize" value="2000KB"/> <param name="maxBackupIndex" value="20"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> </appender> <appender name="debugLog" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/debug.log"/> <param name="maxFileSize" value="2000KB"/> <param name="maxBackupIndex" value="10"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> <!-- filter作用? 配置LevelMax与LevelMin限定输出到文件的日志级别 --> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="DEBUG" /> <param name="LevelMin" value="DEBUG" /> </filter> </appender> <appender name="infoLog" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/info.log"/> <param name="maxFileSize" value="2000KB"/> <param name="maxBackupIndex" value="10"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="INFO" /> <param name="LevelMin" value="INFO" /> </filter> </appender> <appender name="warnLog" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/warn.log"/> <param name="maxFileSize" value="2000KB"/> <param name="maxBackupIndex" value="10"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="WARN" /> <param name="LevelMin" value="WARN" /> </filter> </appender> <appender name="errorLog" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/error.log"/> <param name="maxFileSize" value="2000KB"/> <param name="maxBackupIndex" value="10"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="LevelMax" value="ERROR" /> <param name="LevelMin" value="ERROR" /> </filter> </appender> <!-- 记录该包下所有日志 ,不同page记录方式不同--> <logger name="com.javaeye.paopaohou"> <level value="ALL"/> <appender-ref ref="stdout"/> <appender-ref ref="traceLog4Debug"/> <appender-ref ref="debugLog"/> <appender-ref ref="infoLog"/> <appender-ref ref="warnLog"/> <appender-ref ref="errorLog"/> </logger> <logger name="org.hibernate.SQL"> <level value="DEBUG"/> <appender-ref ref="traceLog4Debug"/> <appender-ref ref="stdout"/> </logger> <logger name="org.hibernate"> <level value="error"/> <appender-ref ref="traceLog4Debug"/> <appender-ref ref="stdout"/> </logger> <logger name="org.springframework"> <level value="error"/> <appender-ref ref="traceLog4Debug"/> <appender-ref ref="stdout"/> </logger> </log4j:configuration>
只不过是在配置appender的时候配置了一个LevelRangeFilter的filter,并配置LevelMax与LevelMin(最大最小级别),加个测试类:
Java代码 :
package com.javaeye.paopaohou; import org.apache.log4j.Logger; public class TestLog4j { private static final Logger log = Logger.getLogger(TestLog4j.class); /** * 测试log4j不同级别日志分文件记录 * */ public static void main(String[] args) { log.debug("debug..."); log.info("info..."); log.warn("warn..."); log.error("error..."); } }
用log4j.properties配置时,记录还是有问题,
log4j.rootLogger=INFO,console,info,warn,error,fatal
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.Encoding=GBK
log4j.appender.console.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.Threshold=INFO
log4j.appender.info.append=true
log4j.appender.info.Encoding=GBK
log4j.appender.info.File=D:/log/bpsoft_info.log
#log4j.logger.debug=debug
#log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.debug.layout=org.apache.log4j.PatternLayout
#log4j.appender.debug.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
#log4j.appender.debug.datePattern='.'yyyy-MM-dd
#log4j.appender.debug.Threshold=DEBUG
#log4j.appender.debug.append=true
#log4j.appender.debug.Encoding=GBK
#log4j.appender.debug.File=D:/log/bpsoft_debug.log
log4j.logger.warn=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.warn.datePattern='.'yyyy-MM-dd
log4j.appender.warn.Threshold=WARN
log4j.appender.warn.append=true
log4j.appender.warn.Encoding=GBK
log4j.appender.warn.File=D\:/log/bpsoft_warn.log
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] [ Class = %C | Method = %M | Line = %L ] | %m |%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.Threshold=ERROR
log4j.appender.error.append=true
log4j.appender.error.Encoding=GBK
log4j.appender.error.File=D\:/log/bpsoft_error.log
log4j.logger.fatal=fatal
log4j.appender.fatal=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fatal.layout=org.apache.log4j.PatternLayout
log4j.appender.fatal.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH\:mm\:ss}] [ Class \= %C | Method \= %M | Line \= %L ] | %m |%n
log4j.appender.fatal.datePattern='.'yyyy-MM-dd
log4j.appender.fatal.Threshold=FATAL
log4j.appender.fatal.append=true
log4j.appender.fatal.Encoding=GBK
log4j.appender.fatal.File=D:/log/bpsoft_fatal.log
------------------------
-----------------------------------------------------------
相关文章推荐
- log4j不同级别日志分不同文件记录
- log4j不同文件记录不同级别日志的问题
- log4j不同级别日志分不同文件记录
- log4j分不同文件记录不同级别日志
- Log4j按级别输出日志到不同的文件2009-09-07 13:29会按日存分割日志文件,并且根据级别输出到不同的文件
- JAVA项目中,配置LOG4j,将日志按照不同级别输出到控制台和文件中
- Log2net频繁记录debug日志到如何区分日志级别到不同文件
- Log4j按级别输出日志到不同文件配置分析
- 【J2EE系列】log4j日志输出分级别或模块到不同文件
- 【转】log4j 不同的模块 不同的级别 记录日志
- Log4j按级别输出日志到不同文件配置分析
- Log4j按级别输出日志到不同文件配置分析
- Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法
- Log4j按级别输出日志到不同文件配置
- 有效Log4j按指定级别定向输出日志到指定的输出文件地址配置Threshold,log4j中如何屏蔽父logger输出源rootlogger的additivity配置,log4j向多个文件记录日志
- log4j日志分级别输出到不同文件
- Log4j按级别输出日志到不同文件配置分析
- Log4j按级别输出日志到不同文件配置分析
- ACE日志根据信息安全级别记录到不同文件
- Log4j记录不同包(java package)的日志到不同文件的方法