【发布时间】:2020-08-31 14:41:22
【问题描述】:
我正在使用log4j2 版本2.13.3,我正在尝试删除应用程序启动时的旧日志。我尝试了各种示例,但它们甚至没有触发我的DefaultRolloverStrategy。我实现了这样的配置:
<properties>
<property name="filePattern">${date:yyyy-MM-dd}</property>
<Property name="baseDirectory">logs</Property>
</properties>
<Appenders>
<!-- ... -->
<RollingFile name="RollingFile" append="true" fileName="${baseDirectory}/${filePattern}.log"
filePattern="${baseDirectory}/%d{yyyy-MM-dd}.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${baseDirectory}" maxDepth="1">
<IfFileName glob="*.log"/>
<IfLastModified age="10d"/>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<OnStartupTriggeringPolicy/> 在启动时实际上触发了我的DefaultRolloverStrategy,但符合条件的文件却是空的:
因此,不会删除任何日志,但我相当确信我的配置是正确的。如果我的日志文件模式与其奇怪的PATTERN_COUNTER 常量不匹配,我是否遗漏了什么或者为什么getEligibleFiles() 方法会中止?
【问题讨论】:
标签: java windows configuration log4j2