如何配置 log4j 只保留最近 7 天的日志文件?

新手上路,请多包涵

我有几个 Java 应用程序使用 log4j 进行日志记录时出现以下日志记录问题:

我希望每天轮换日志文件,例如

log.2010-09-10
log.2010-09-09
log.2010-09-08
log.2010-09-07
log.2010-09-06
log.2010-09-05
log.2010-09-04

但出于数据安全原因,我们不允许在我的公司保留超过 7 天的日志文件。因此下一个日志文件 log.2010-09-11 的生成应该触发 log.2010-09-04 的删除。是否可以使用 log4j 配置这样的行为?如果没有,您是否知道针对此类日志记录问题的另一种优雅解决方案?

原文由 asmaier 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

您可以在一个单独的脚本中执行内务管理,该脚本可以每天运行。是这样的:

 find /path/to/logs -type f -mtime +7 -exec rm -f {} \;

原文由 dogbane 发布,翻译遵循 CC BY-SA 2.5 许可协议

我假设您正在使用 RollingFileAppender?在这种情况下,它有一个名为 MaxBackupIndex 的属性,您可以设置它来限制文件数量。例如:

 log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=7
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

原文由 dty 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题