如何将log4j配置为仅保留最近七天的日志文件?

2022-08-31 16:35:51

我对几个用于日志记录的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

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


答案 1

我假设你正在使用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

答案 2

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

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

推荐