Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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-DailRollingFileAppender-滚动文件是否在一段时间后删除?_Java_Logging_Log4j - Fatal编程技术网

Java Log4j-DailRollingFileAppender-滚动文件是否在一段时间后删除?

Java Log4j-DailRollingFileAppender-滚动文件是否在一段时间后删除?,java,logging,log4j,Java,Logging,Log4j,表示日志保存7天。这是可配置的吗 这意味着永远不会删除文件 本网站还同意永远不会删除日志文件: 如果您试图对每日日志文件使用Apache Log4J DailRollingFileAppender,则可能需要指定应保留的最大文件数。就像RollingFileAppender支持maxBackupIndex一样。但是当前版本的Log4j(apachelog4j1.2.16)没有提供任何机制来删除旧的日志文件,如果您使用的是DailyRollingFileAppender。我试图对DailyRoll

表示日志保存7天。这是可配置的吗

这意味着永远不会删除文件

本网站还同意永远不会删除日志文件:

如果您试图对每日日志文件使用Apache Log4J DailRollingFileAppender,则可能需要指定应保留的最大文件数。就像RollingFileAppender支持maxBackupIndex一样。但是当前版本的Log4j(apachelog4j1.2.16)没有提供任何机制来删除旧的日志文件,如果您使用的是DailyRollingFileAppender。我试图对DailyRollingFileAppender的原始版本进行一些小的修改,以添加maxBackupIndex属性。因此,可以清除将来可能不需要的旧日志文件

我找不到权威的答案,我不想等待7天,看看我的日志是否被删除

请参阅有关Log4J删除的内容。简而言之,DailRollingFileAppender似乎不能。但也许你会考虑换成。这是同一个人写的,可以做你想做的事

我使用以下appender来维护30天的HTML日志:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>Logs\logFile.html</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- daily rollover -->
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.html</fileNamePattern>

      <!-- keep 30 days' worth of history -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
    <charset>UTF-8</charset>
        <layout class="ch.qos.logback.classic.html.HTMLLayout">
            <pattern>%d{HH:mm:ss.SSS}%thread%level%logger%line%msg</pattern>
        </layout>           
    </encoder>
</appender>
手册中的
maxHistory
上说明了以下内容:

可选的maxHistory属性控制要保留的存档文件的最大数量,以删除旧文件。例如,如果指定每月滚动,并将maxHistory设置为6,则将保留6个月的存档文件,并删除6个月以上的文件。注意:随着旧的归档日志文件被删除,为归档日志文件而创建的任何文件夹都将被删除(视情况而定)


Logback还提供了一个Log4J属性转换器来帮助进行转换。以及从Log4J切换的专用工具。

在测试平台上每5分钟更改一次系统日期,看看会发生什么?刚刚尝试过。似乎没有删除文件。我担心的一件事是,触发因素可能不是日期变更,可能是当前时间是12:00。文件删除也可能由大小而不是时间触发。谢谢您的回答。我正在寻找一个不会删除我的日志的记录器。我想在几周内做一些内存分析,我想确保日志不会被删除。如果是这样的话,那么只需省略maxHistory