将Log4j按不同级别输出到不同文件【是网上别的童鞋的一篇帖子,但我改了点东西,就属于翻译吧^_^】
2011-12-20 14:12
405 查看
主要是靠org.apache.log4j.varia.LevelRangeFilter这个类
log4j.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>
<!-- <SPAN style="COLOR: #ff0000"> --><!-- filter作用? 配置LevelMax与LevelMin限定输出到文件的日志级别 -->
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="DEBUG" />
<param name="LevelMin" value="DEBUG" />
</filter><!-- </SPAN> -->
</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="infotest" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/info_test.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>
<!-- 记录该包下所有日志,不同级别输出到不同日志文件 -->
<logger name="com.unlun.hfzc">
<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="com.hisunsray.commons.database">
<level value="ALL"/>
<appender-ref ref="infotest"/>
</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> 写一个测试类:
package com.unlun.hfzc;
import org.apache.log4j.Logger;
import junit.framework.TestCase;
public class Log4jTest extends TestCase {
private Logger logger=Logger.getLogger(this.getClass());
//private Logger logger2=Logger.getLogger("debug");
public void testLog4j(){
/*logger.info("Hello World!");
logger.debug("Debug Test");*/
logger.debug("debug...");
logger.info("info...");
logger.warn("warn...");
logger.error("error...");
}
}
log4j.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>
<!-- <SPAN style="COLOR: #ff0000"> --><!-- filter作用? 配置LevelMax与LevelMin限定输出到文件的日志级别 -->
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMax" value="DEBUG" />
<param name="LevelMin" value="DEBUG" />
</filter><!-- </SPAN> -->
</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="infotest" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/info_test.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>
<!-- 记录该包下所有日志,不同级别输出到不同日志文件 -->
<logger name="com.unlun.hfzc">
<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="com.hisunsray.commons.database">
<level value="ALL"/>
<appender-ref ref="infotest"/>
</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> 写一个测试类:
package com.unlun.hfzc;
import org.apache.log4j.Logger;
import junit.framework.TestCase;
public class Log4jTest extends TestCase {
private Logger logger=Logger.getLogger(this.getClass());
//private Logger logger2=Logger.getLogger("debug");
public void testLog4j(){
/*logger.info("Hello World!");
logger.debug("Debug Test");*/
logger.debug("debug...");
logger.info("info...");
logger.warn("warn...");
logger.error("error...");
}
}
相关文章推荐
- Log4j按级别输出日志到不同的文件
- Log4j按级别输出日志到不同文件配置分析
- JAVA项目中,配置LOG4j,将日志按照不同级别输出到控制台和文件中
- Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法
- Log4j按级别输出日志到不同文件
- log4j日志输出分级别或模块到不同文件
- Log4j按级别输出日志到不同的文件
- log4j日志输出分级别或模块到不同文件
- Log4j不同级别输出到不同文件的几种方式
- log4j2 不同级别的log输出到不同的文件
- log4j日志输出分级别或模块到不同文件
- Log4j按级别输出日志到不同文件配置分析
- Log4j按级别输出日志到不同文件配置分析
- Log4j按级别输出日志到不同文件配置分析
- Log4j按级别输出日志到不同的文件
- Log4j按级别输出日志到不同文件配置
- Log4j按级别输出日志到不同的文件2009-09-07 13:29会按日存分割日志文件,并且根据级别输出到不同的文件
- Log4j按级别输出日志到不同文件配置分析
- log4j按不同级别输出到日志文件
- Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法