Log4J:使用sysdate备份文件名

时间:2013-01-24 11:29:47

标签: java logging log4j

我想将log4j中的备份文件命名为sysdate,而不是filename.1,filename.2 ....

我该怎么做?

2 个答案:

答案 0 :(得分:2)

要做到这一点,你需要使用Log4J" extras" JAR(由Apache提供),并使用那里找到的RollingFileAppender(请参阅FileNamePattern参数):http://logging.apache.org/log4j/companions/extras/apidocs/index.html

例如(取自那里的Javadoc):

<appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}.gz"/>
    </rollingPolicy>
</appender>

答案 1 :(得分:1)

如果您需要以特定频率备份文件,例如每分钟或每小时,DailyRollingFileAppender课程将满足您的目的。

但是,如果您需要在文件达到一定大小后进行存档,可能有一种好方法是扩展RollingFileAppender类。您需要以类似于以下的方式覆盖其rollover()方法:

public void rollOver() {
...

file = new File(fileName + '.' + System.currentTimeMillis());

...

}