Log4j根据级别输出到不同文件

 首先,Log4J中经常使用到的级别优先级从底到高依次为:

DEBUG < INFO < WARN < ERROR < FATAL

分别对应程序中的logger.debug(”“) < logger.info(”“) < logger.warn(”“) < logger.error(”“) < logger.fatal(”“)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
	<appender name="UserInfoDailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="log\\user_"/>  
        <param name="Append" value="true"/>  
        <param name="Encoding" value="UTF-8"/>
        <param name="DatePattern" value="yyyy-MM-dd-HH'.log'"/>   
        <layout class="org.apache.log4j.PatternLayout">  
 			<param name="ConversionPattern" value="[%d{yyyy/MM/dd HH:mm:ss}]%m%n" />
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">    
 	 		<param name="LevelMin" value="INFO" />    
 	 		<param name="LevelMax" value="ERROR" />    
		</filter>  
    </appender>
    
<appender name="DebugInfoDailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="log\\debug_"/>  
        <param name="Append" value="true"/>  
        <param name="Encoding" value="UTF-8"/> 
        <param name="DatePattern" value="yyyy-MM-dd-HH'.log'"/>   
        <layout class="org.apache.log4j.PatternLayout">  
 			<param name="ConversionPattern" value="[%d{yyyy/MM/dd HH:mm:ss}]%m%n" />
        </layout>
       <filter class="org.apache.log4j.varia.LevelRangeFilter">    
 	 		<param name="LevelMin" value="DEBUG" />    
 	 		<param name="LevelMax" value="DEBUG" />    
		</filter>   
</appender>
	<root>
	 	<priority value ="info"/>  
		<appender-ref ref="UserInfoDailyRollingFileAppender" />
		<appender-ref ref="DebugInfoDailyRollingFileAppender" />
	</root>
</log4j:configuration>

   定义INFO<=级别<=ERROR的日志输出。

        <filter class="org.apache.log4j.varia.LevelRangeFilter">    
 	 		<param name="LevelMin" value="INFO" />    
 	 		<param name="LevelMax" value="ERROR" />    
		</filter> 

每一句Log输出的前缀为 [yyyy/MM/dd HH:mm:ss] 的样子。

        <layout class="org.apache.log4j.PatternLayout">  
 			<param name="ConversionPattern" value="[%d{yyyy/MM/dd HH:mm:ss}]%m%n" />
        </layout>

每小时输出一个文件,注意Log4j会在当前小时中首先把日志保存到临时文件"user_",当时间切换到下一小时时才会生成user_yyyy-MM-dd-HH.log

<param name="DatePattern" value="yyyy-MM-dd-HH'.log'"/

猜你喜欢

转载自bbwang8088.iteye.com/blog/2032783