每天生成一个日志文件,当天12点的时候,会复制一份当天日志到一个加日期后缀的文件当中。
例如:日志fileName test.log,当天的日志会打印到test.log文件中,12点的时候会将前一天的日志复制到文件test.log.yyyy-mm-dd文件中。
DailyRollingFileAppender虽然可以每天生成一个日志文件,但是没办法做到让当天的日志文件带上时间后缀(通常也没有必要)。
Just in case 有这样的需求,可以试试Apache Extras for Apache log4j(for more information:https://logging.apache.org/log4j/extras/)。它是log4j 1.2.x的功能扩展包。其中的很多组件最初是致力于Apache log4j 1.3的研发工作。
log4j-extras重新实现了RollingFileAppender,可以更加灵活地指定RollingPolicy。并且提供了基于时间的rolling策略,TimeBasedRollingPolicy。使用它们,可以方便地完成我们的需求。log4j.xml配置如下(也可以使用log4j.properties):
<appender name="daily" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="encoding" value="utf-8"/>
<rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
<param name="fileNamePattern" value="daily.log.%d{yyyy-MM-dd}"/>
</rollingPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] - %m%n"/>
</layout>
</appender>
更多信息请参考: https://logging.apache.org/log4j/extras/