Log4j 每日轮换和每月保留,使用任何文件附加器

2022-09-04 02:08:49

是否可以使用任何 log4j 追加器写入具有特定轮换时间和保留限制的日志。
目标是:

  • 每天有一个日志文件;在午夜为新日志创建一个新文件
  • 保留日志文件并在一定时间后自动删除它们;因此,删除早于 X 天(例如 30 天)的日志文件

似乎可以进行轮换,但使用log4j无法限制保留时间

log4j 版本是 1.2。


答案 1

这个log4J属性为我工作

log4j.rootLogger=DEBUG, stdout, file

# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/opt/cronjob/logs/cronlogs.log
log4j.appender.file.MaxFileSize=1028MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

答案 2

大多数答案都是基于日志。但问题是关于log4j 1.2(旧...)

提到DailyRollingFileAppender的答案也不会起作用。 不支持该属性,请参阅 http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html(这是org.apache.log4j.DailyRollingFileAppenderMaxBackupIndexRollingFileAppender )

您可能感兴趣的是 : 在DailyRollingFileAppender中使用MaxBackupIndex -log4j

以及可能的答案:Log4j Rollingpolicy和MaxbackupIndex

但是你应该使用slf4j log4j“仿真”(http://www.slf4j.org/legacy.html#log4j-over-slf4j)并通过logback(没有任何代码更改)路由你的日志,这样就更容易实现。


推荐