我想从 log4j 命名备份文件,将 sysdate 附加到名称中,而不是 filename.1, filename.2 ....
我该怎么做?
为此,您需要使用 Log4J“附加”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>
如果您需要以特定频率(例如每分钟或每小时)备份文件,那么DailyRollingFileAppender
课程将适合您的目的。
但是,如果您需要在文件达到一定大小后归档文件,那么扩展RollingFileAppender
类可能是一种好方法。您需要以rollover()
类似于以下的方式覆盖其方法:
public void rollOver() {
...
file = new File(fileName + '.' + System.currentTimeMillis());
...
}