伊人博客 一款有技术又有生活的博客

javaweb中SSM框架下使用log4j日志文件名变成日期

发布时间:2017-05-03 14:05:31 标签:log4j | 阅读(2762)

网上搜到的教程全部都是使用DailyRollingFileAppender来实现日志文件追加日期的方式,但是根据资料以及实践发现该方式具体的过程是这样的:当天的日志会暂存在log文件中,该文件并没有日期样式,等到了当天晚上12点的时候会复制一份出来并且以当前日期命名,这种效果根本无法达到预期想要的结果,我们所需要的是每天的日志存放在一个以日期命名的文件,甚至文件夹都是使用日期命名的。解决办法如下:

以下方法除了使用到了log4j的包外,还是用到了apache-log4j-extras包,该包下载地址http://central.maven.org/maven2/log4j/apache-log4j-extras/1.1/apache-log4j-extras-1.1.jar  也可以到官网上下载,这里同时提供maven地址:

<dependency>
    <groupId>log4j</groupId>
    <artifactId>apache-log4j-extras</artifactId>
    <version>1.1</version>
</dependency>

添加该包的引用后,开始配置log4j,据说该模式下无法使用log4j.properties来配置,只能使用xml,文件名为log4j.xml,此名称为默认,无需配置web.xml即可,下边为具体的配置,献出可下载文件一个:log4j.zip

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- appender -->
<!-- STDOUT -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p [%c] - %m%n" />
</layout>
</appender>
<!-- ERROR错误日志模板 -->
<appender name="ERROR" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="D:/cabangs_logs/error/%d{yyyy-MM}/cabangs_%d{yyyy-MM-dd}.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<!-- WARN 警告日志模板-->
<appender name="WARN" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="D:/cabangs_logs/warn/%d{yyyy-MM}/cabangs_%d{yyyy-MM-dd}.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<!-- INFO&DEBUG日志模板 -->
<appender name="INFO" class="org.apache.log4j.rolling.RollingFileAppender">
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="FileNamePattern" value="D:/cabangs_logs/info/%d{yyyy-MM}/cabangs_%d{yyyy-MM-dd}.log" />
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<logger name="view">
<level value="info" />
<appender-ref ref="FILE" />
</logger>
<root>
<priority value="info"/>
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
</root>
</log4j:configuration>


原创文章如转载,请注明出处“伊人博客

站内搜索
关注公众号(随时搜索)
文章归档
热门推荐
随机推荐
冷门晾晒