six*_*ude 5 java logging log4j
此答案意味着日志会保留 7 天。这个可以配置吗?
这个Java Ranch Post暗示文件永远不会被删除。
该站点还同意永远不会删除日志文件:
如果您尝试将 Apache Log4J DailyRollingFileAppender 用于每日日志文件,您可能需要指定应保留的最大文件数。就像滚动 RollingFileAppender 支持 maxBackupIndex 一样。但是,如果您使用 DailyRollingFileAppender,当前版本的 Log4j(Apache log4j 1.2.16)不提供任何删除旧日志文件的机制。我试图在 DailyRollingFileAppender 的原始版本中进行小的修改以添加 maxBackupIndex 属性。因此,可以清理将来可能不需要的旧日志文件。
我找不到权威答案,我不想等待 7 天来查看我的日志是否被删除。
请参阅这篇关于 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>
Run Code Online (Sandbox Code Playgroud)
手册的相关部分说明了以下内容maxHistory:
可选的 maxHistory 属性控制要保留的归档文件的最大数量,删除较旧的文件。例如,如果您指定每月滚动,并将 maxHistory 设置为 6,则将保留 6 个月的存档文件,并删除超过 6 个月的文件。请注意,当旧的存档日志文件被删除时,为日志文件存档而创建的任何文件夹都将根据需要删除。
Logback 还提供了 Log4J 属性转换器,可帮助完成转换。他们的手册中有一整章致力于从 Log4J 切换。
| 归档时间: |
|
| 查看次数: |
15140 次 |
| 最近记录: |