Log4J2(2.6) - 自动删除日志

时间:2017-09-15 09:48:54

标签: java logging properties log4j log4j2

我目前正在尝试在新的Log4j2(2.6)中运行Delete Action。 可以使用预先配置的条件(如文件大小或年龄)删除日志文件。 有关这方面的信息在网上很少见,但足以配置它。 无论如何,它对我不起作用。

我们正在使用属性文件来配置Log4J2。 写作完全符合预期,只有删除不会。

所以,这是我们的属性文件的片段:

主日志文件

appender.rolling.type = RollingFile

appender.rolling.name = RollingFile

appender.rolling.fileName = ${filename}

appender.rolling.filePattern = log/%d{yyyyMMdd}_xxxlog.zip

appender.rolling.layout.type = PatternLayout

appender.rolling.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n

appender.rolling.policies.type = Policies

appender.rolling.policies.time.type = TimeBasedTriggeringPolicy

appender.rolling.policies.time.interval = 2m

appender.rolling.policies.time.modulate = true

appender.rolling.strategy.type = DefaultRolloverStrategy

appender.rolling.strategy.action.type = Delete

appender.rolling.strategy.action.basepath = /log

appender.rolling.strategy.action.maxdepth = 1

appender.rolling.strategy.action.condition.type = IfLastModified

appender.rolling.strategy.action.condition.age = 1D

appender.rolling.strategy.action.PathConditions.type = IfFileName

appender.rolling.strategy.action.PathConditions.glob = *.log

All starts with the line: **appender.rolling.strategy.action.type = Delete**

接下来是基道。在这里,我尝试了多个选项,如绝对路径或相对路径。 我也试过它,有没有开始和结束斜线...一些尝试导致控制台出错,所以至少“/ log”似乎是正确的方法(也可以使用/ log /)。 / p>

在第三行,“appender.rolling.strategy.action.maxdepth = 1”我尝试了一些更多的值。只是为了确定,这不是问题所在。所有日志文件都在根目录中,因此1似乎是正确的。

下一行: appender.rolling.strategy.action.condition.type = IfLastModified

我只是查看代码,在它没有按预期工作之后,只是为了绝对肯定,有一个函数IfLastModified。它就在那里,在控制台中我可以确认,它被称为“工作”。

下一步: appender.rolling.strategy.action.condition.age = 1D 在这里我也尝试了多种选择。 1 m,1 D ...当然,我在目录中复制了旧日志文件,这些日志文件超过1分钟和/或超过1天。

appender.rolling.strategy.action.PathConditions.type = IfFileName

这是条件,您要删除哪些文件。我从* .log开始 但我也尝试了绝对名称logfile.log和许多其他可能性。我有.zip,.log,.txt ......

然后我找到了可能性,软件可能无权删除该文件夹中的内容。我给了文件权限并访问了所有东西,就像写,读,删除一样。 毕竟,我可以说,属性配置似乎没问题,因为没有错误。 但它只是不起作用。

啊,最后但同样重要的是,我还发现一行末尾的空格会导致错误。 没有空格......这根本不是问题。

有人知道它为什么不起作用吗? 我感谢任何帮助或想法。 非常感谢你。

度过愉快的一天,

蒂姆

1 个答案:

答案 0 :(得分:0)

我已将RollingFileAppender配置为与您的配置类似。我认为您应该在属性中修改2点以使其正常工作 -

appender.rolling.policies.time.interval = 1

appender.rolling.strategy.action.PathConditions.glob = *.zip