当前位置: 首页 > 知识库问答 >
问题:

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

司徒英卓
2023-03-14

下面的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属性的配置示例。

有没有办法解决这个问题?

谢啦

共有1个答案

诸葛砚文
2023-03-14

通过改变让它工作:

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

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

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

 类似资料:
  • 问题内容: 我正在尝试将 log4j 配置为仅保留指定数量的备份文件或保留不超过一定年龄的文件。最终,我希望有 时间(每天)基于触发策略, 并保留30个备份文件或删除早于30天的文件。 经过一些研究后,我了解到在使用 时间策略 时无法指定备份文件的最大数量,但是遇到了这个问题https://issues.apache.org/jira/browse/LOG4J2-435和此文档片段http: //

  • 这是我的log4j2.yaml。现在,这个记录器在一天内创建一个文件,当这一天结束时,记录器将创建一个文件夹“归档”,并将旧的日志文件放在这个文件夹中。我需要删除7天前创建的所有旧日志。我做错了什么?请帮帮我

  • 我想在maven构建期间更改不同属性的值。Maven根据配置文件更改文件中的值,我也尝试了很多其他方法,但它从来都不起作用,我不明白为什么... 这是我的pom.xml 我有一个基于maven的项目,下面是src/main/resources下名为front-config.properties的文件:

  • 我需要删除每天滚动的旧日志文件。要限制我尝试的文件数,请执行以下操作: 但是日志没有被删除。 现在我在尝试 但我得到了一个错误: 错误DefaultRolloverStrategy包含无效元素或属性“Delete” 我的log4j2有点问题。xml文件? 我将maven与以下内容一起使用:

  • 我正在尝试以编程方式配置log4j2v2。11.1作为DefaultRolloverStrategy的一部分,使用新的删除操作删除旧文件。 正如您可以从下面的代码中看到的,我已将系统设置为每天创建日志文件,并在文件大小达到1MB时滚动该文件。 我尝试使用两个条件将删除操作添加到DefaultRolloverStrategy中—IfFileName和IfLastModified。IfFileName

  • 最近,我决定学习如何使用log4j2记录器。我下载了所需的jar文件,创建了库,xml编译文件,并尝试使用它。不幸的是,我在console(Eclipse)中得到了这样的语句: 这是我的测试类代码: 和我的xml配置文件: 我还尝试使用不带标记的xml,以及包规范和各种文件夹/包目录,但没有帮助。现在我的文件直接位于Eclipse的project文件夹中。