我想将log4j中的备份文件命名为sysdate,而不是filename.1,filename.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());
...
}