【问题标题】:Log4j2: TimeBasedTriggeringPolicy strategy max not worksLog4j2:TimeBasedTriggeringPolicy 策略最大值不起作用
【发布时间】:2020-04-30 14:08:14
【问题描述】:

“appender.file-log.strategy”运行不佳。我的文件夹包含 30 多个文件。你有什么建议吗?我想要最多 20 个文件。 Log4j2 版本:2.12.1

这是我的代码:

appender.file-log.type=RollingFile
appender.file-log.name=FileLog
appender.file-log.fileName=logs/myfolder/daily.log
appender.file-log.filePattern=logs/myfolder/daily.log.%d{yyyyMMdd}.%i.gz
appender.file-log.layout.type=PatternLayout
appender.file-log.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file-log.policies.type=Policies
appender.file-log.policies.date.type=TimeBasedTriggeringPolicy
appender.file-log.policies.date.interval=1
appender.file-log.strategy.type=DefaultRolloverStrategy
appender.file-log.strategy.max=20

【问题讨论】:

    标签: java spring logging log4j log4j2


    【解决方案1】:

    我尝试了这个解决方案,它似乎运作良好。我删除了属性

    appender.file-log.strategy.max=20
    

    我用这段代码替换了它(在 appender.filelog.strategy.type 之后):

    appender.file-log.strategy.type=DefaultRolloverStrategy
    appender.file-log.strategy.delete.type=Delete
    appender.file-log.strategy.delete.basePath=logs/myFolder/
    appender.file-log.strategy.delete.maxDepth=1
    appender.file-log.strategy.delete.ifAccumulatedFileCount.type=IfAccumulatedFileCount
    appender.file-log.strategy.delete.ifAccumulatedFileCount.exceeds=20
    

    【讨论】:

    • 这是正确的解决方案。 “max”参数表示在一个时间间隔内文件的最大数量。一旦达到最大值,该时间间隔内的旧文件将被删除。另一方面,DeleteAction 可以删除任何内容。
    【解决方案2】:

    配置对我来说是正确的,我可能建议检查是否正确设置了删除文件的权限,并尝试使用干净的文件夹进行一些测试,因此没有预先存在的文件

    【讨论】:

      猜你喜欢
      • 2020-09-16
      • 2013-03-30
      • 2023-04-07
      • 2021-06-24
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      相关资源
      最近更新 更多