首先,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'"/