请参阅这篇关于 Log4J 删除的帖子。简而言之,dailyRollingFileAppender 似乎不能。但也许您可能想看看切换到Logback。它是由同一个人编写的,可以满足您的需求。
我使用以下附加程序来维护 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 切换的一章。