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

log4j2 - keep last 7days of log file

要保留最近 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 等等.

请指导我。

默认情况下 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