log4j2 - 保留最后 7 天的日志文件

时间:2021-04-09 22:16:23

标签: log4j2

要保留最近3天的日志文件,每个文件大小不超过10MB,如何在log4j2.yml文件中配置?

我试过了,

filePattern: ${log}/${app}-archive/${app}-%d{MM-dd-yyyy}-%i.log"
...
Policies:
  TimeBasedTriggeringPolicy:
   interval: 1
   modulate: true
  SizeBasedTriggeringPolicy:
   size: 10 MB
 DefaultRolloverStrategy:
   delete:
    basePath: "${log}/${app}-archive"
    maxDepth: 1
    IfFileName:
     glob: "*.log"
    IfLastModified:
     age: 3d

并且它在同一天最多只能创建 7 个存档并删除旧文件,即使它是今天的日志。如果 lastModified < 3d,有没有办法保留尽可能多的文件? 如 app-04-09-2021-8.log、app-04-09-2021-9.log、....app-04-09-2021-39.log 等。

请指导我。

1 个答案:

答案 0 :(得分:0)

默认情况下,DefaultRolloverStrategy 将最多保留 max 配置属性的值,默认情况下为 7,每个基于时间的翻转间隔,每天在您的用例中,如您的文件中所示模式,${app}-%d{MM-dd-yyyy}-%i.log - max 属性仅适用于 %i 计数器。

为该属性提供更大的值,您认为合适的值取决于您的日志模式。例如:

DefaultRollOverStrategy:
  max: 100
  delete:
    basePath: "${log}/${app}-archive"
    maxDepth: 1
    IfFileName:
     glob: "*.log"
    IfLastModified:
     age: 3d

请参阅相关的 documentation