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

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

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

网上搜到的教程全部都是使用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>


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

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