Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Log4J:带有sysdate的备份文件名_Java_Logging_Log4j - Fatal编程技术网

Java Log4J:带有sysdate的备份文件名

Java Log4J:带有sysdate的备份文件名,java,logging,log4j,Java,Logging,Log4j,我想从log4j中命名备份文件,将sysdate附加到名称中,而不是filename.1、filename.2 如何备份?如果您需要以特定频率备份文件,例如每分钟或每小时备份一次,则DailRollingFileAppender类将满足您的需要 但是,如果您需要在文件达到一定大小后进行归档,那么一个好方法可能是扩展RollingFileAppender类。您需要以如下类似的方式重写其rollover()方法: public void rollOver() { ... file = new Fi

我想从log4j中命名备份文件,将sysdate附加到名称中,而不是filename.1、filename.2


如何备份?

如果您需要以特定频率备份文件,例如每分钟或每小时备份一次,则
DailRollingFileAppender
类将满足您的需要

但是,如果您需要在文件达到一定大小后进行归档,那么一个好方法可能是扩展
RollingFileAppender
类。您需要以如下类似的方式重写其
rollover()
方法:

public void rollOver() {
...

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

...

}

为此,您需要使用Log4J“extras”JAR(由Apache提供),并使用那里找到的
RollingFileAppender
(请参阅
FileNamePattern
参数):

例如(取自那里的Javadoc):



Log4J社区已经完成了这项工作(请参见下面的答案)。我在重写rollOver()方法时遇到了一个问题。它无法通过扩展访问RollingFileAppender的私有属性class@AlexCuervo您是否尝试过
setFile(fileName+'.+System.currentTimeMillis())
?@Isaac我认为此实现仅适用于固定的滚动周期。OP需要在文件达到大小限制后滚动的内容,但要有
sysdate
,而不是滚动索引。@Reza搞错了。这适用于任何
RollingFileAppender
的实现。配置将滚动策略和文件名格式分开。下面我提供的代码片段只是一个示例。如何在log4j.properties中配置它?只有使用XML配置log4j,使用
DOMConfigurator
时,这种“更新的”配置工具才可用。基本上,您需要做的就是将
log4j.properties
文件转换为XML格式,将其命名为
log4j.XML
,并将其放置在类路径中。有关更多信息,请查看
DOMConfigurator
。XML是Log4J配置的前进方向。
<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>