java - Log4j2 基于 java 属性的配置不删除旧文件

标签 java logging log4j2

下面的 log4j2 配置无法删除我的旧文件。

# Rolling file appender
log4j2.appender.rolling.type = RollingRandomAccessFile
log4j2.appender.rolling.name = RollingFile
log4j2.appender.rolling.fileName = ${karaf.data}/log/karaf.log
log4j2.appender.rolling.filePattern = ${karaf.data}/log/karaf-%d{yyyy-MM-dd-HH-mm}-%i.log.zip
# uncomment to not force a disk flush
# log4j2.appender.rolling.immediateFlush = false
log4j2.appender.rolling.append = true
log4j2.appender.rolling.layout.type = PatternLayout
log4j2.appender.rolling.layout.pattern = ${log4j2.pattern}
log4j2.appender.rolling.policies.type = Policies
log4j2.appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
log4j2.appender.rolling.policies.time.interval = 1
log4j2.appender.rolling.policies.time.modulate = true
log4j2.appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.rolling.policies.size.size = 5MB
log4j2.appender.rolling.strategy.type = DefaultRolloverStrategy
log4j2.appender.rolling.strategy.fileIndex = nomax
# uncomment to set max number of files to create per day
# log4j2.appender.rolling.strategy.max = 10
log4j2.appender.rolling.strategy.action.type = Delete
log4j2.appender.rolling.strategy.action.basePath = ${karaf.data}/log
log4j2.appender.rolling.strategy.action.maxdepth = 1
log4j2.appender.rolling.strategy.action.condition.type = IfFileName
log4j2.appender.rolling.strategy.action.condition.glob = karaf-*.log.zip
log4j2.appender.rolling.strategy.action.condition.nested_condition.type = IfLastModified
log4j2.appender.rolling.strategy.action.condition.nested_condition.age = 5m

我的日志文件按照基于时间和基于大小的策略的设置正确生成,但我无法弄清楚为什么这些文件没有被删除。一切似乎都是正确的,我的日志中没有收到任何错误。

我没有前导或尾随空格。

我浪费了很多时间来调试这个。官方的 log4j2 文档很糟糕,因为它没有提供基于 java 属性的配置示例。

关于如何解决这个问题有什么想法吗?

谢谢

最佳答案

通过更改使其工作:

log4j2.appender.rolling.strategy.action.condition.glob = karaf-*.log.zip

log4j2.appender.rolling.strategy.action.condition.glob = *.zip

看起来旧的正则表达式模式没有被正确解释,这非常奇怪,因为它绝对是正确的。

关于java - Log4j2 基于 java 属性的配置不删除旧文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879691/

相关文章:

java - 向 JFrame 添加图 block 的更简单方法

java - 如何使用 GSON 进行自定义序列化?

java - 在最终的 Jar 中包含 php 文件,以便方法可以调用 php 文件

java - 持久化 Java Bean

php - 如何配置 Apache Kafka 来集中应用程序日志?

java - P6Spy Spring Boot 启动装饰器产生空输出

java - 使用 ConfigurationFactory 以编程方式配置 log4j2

java - 如何配置 log4j2 Web 应用程序

java - Cloud Foundry - log4j2 - 将应用程序 URI 合并到日志中

java - Activiti 的日志配置