我们是否可以将RollingFileAppender get函数配置为DailyRollingFileAppender。这意味着我想每天备份(旋转)日志文件,使用“最大文件大小”和“日志文件可以保留的最大日期数”(RollingFileAppender相关的maxBackupIndex和maxFileSize属性)。问题是,使用DailyRollingFileAppender,我们无法配置maxBackupIndex和maxFileSize属性。谢谢。
答案 0 :(得分:5)
不幸的是,这不可能使用log4j的标准API,甚至使用额外的 1 。
但是,您可以使用Simon Park开发的课程uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender
2 :
如果您使用基于XML的配置,这是一个示例:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration>
<log4j:configuration>
<appender name="ROLL" class="uk.org.simonsite.log4j.appender.TimeAndSizeRollingAppender">
<param name="File" value="app.log"/>
<param name="DatePattern" value=".HHmmss"/>
<param name="MaxFileSize" value="10KB"/>
<param name="MaxRollFileCount" value="5"/>
<layout class="org.apache.log4j.SimpleLayout" />
</appender>
<root>
<appender-ref ref="ROLL"/>
</root>
</log4j:configuration>
对于此特定示例,生成的文件类似于:
app.log
app.log.155144.1
app.log.155144.2
app.log.155144.3
app.log.155144.4
app.log.155144.5
app.log.155400.1
app.log.155400.2
app.log.155400.3
app.log.155400.4
app.log.155400.5
app.log.161646.1
app.log.161646.2
app.log.161646.3
app.log.161646.4
app.log.161646.5
app.log.161706.1
app.log.161706.2
app.log.161706.3
app.log.161706.4
备注的
pom.xml
: <repositories>
<repository>
<id>opencast-public</id>
<url>http://repository.opencastproject.org/nexus/content/repositories/public/</url>
</repository>
...
</repositories>
...
<dependencies>
<dependency>
<groupId>uk.org.simonsite</groupId>
<artifactId>log4j-rolling-appender</artifactId>
<version>20131024-2017</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
...
</dependencies>