Java Log4j-DailRollingFileAppender-滚动文件是否在一段时间后删除?
表示日志保存7天。这是可配置的吗 这意味着永远不会删除文件 本网站还同意永远不会删除日志文件: 如果您试图对每日日志文件使用Apache Log4J DailRollingFileAppender,则可能需要指定应保留的最大文件数。就像RollingFileAppender支持maxBackupIndex一样。但是当前版本的Log4j(apachelog4j1.2.16)没有提供任何机制来删除旧的日志文件,如果您使用的是DailyRollingFileAppender。我试图对DailyRollingFileAppender的原始版本进行一些小的修改,以添加maxBackupIndex属性。因此,可以清除将来可能不需要的旧日志文件 我找不到权威的答案,我不想等待7天,看看我的日志是否被删除 请参阅有关Log4J删除的内容。简而言之,DailRollingFileAppender似乎不能。但也许你会考虑换成。这是同一个人写的,可以做你想做的事 我使用以下appender来维护30天的HTML日志:Java Log4j-DailRollingFileAppender-滚动文件是否在一段时间后删除?,java,logging,log4j,Java,Logging,Log4j,表示日志保存7天。这是可配置的吗 这意味着永远不会删除文件 本网站还同意永远不会删除日志文件: 如果您试图对每日日志文件使用Apache Log4J DailRollingFileAppender,则可能需要指定应保留的最大文件数。就像RollingFileAppender支持maxBackupIndex一样。但是当前版本的Log4j(apachelog4j1.2.16)没有提供任何机制来删除旧的日志文件,如果您使用的是DailyRollingFileAppender。我试图对DailyRoll
<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