gpt4 book ai didi

java - Log4J2 (2.6) - 自动删除日志

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:30 25 4
gpt4 key购买 nike

我目前正在尝试在新的 Log4j2 (2.6) 中运行删除操作。可以根据预先配置的条件(例如文件大小或期限)删除日志文件。有关这方面的信息在网络上确实很少,但足以以某种方式配置它。无论如何,这对我不起作用。

我们正在使用属性文件来配置 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/)。

在第三行,“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...

然后我想到了一种可能性,即该软件可能无权删除该文件夹中的某些内容。我授予文件权限并访问所有内容,就像写入、读取、删除一样。毕竟,我可以说,属性配置似乎没问题,因为没有错误。但它就是行不通。

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

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

祝你有美好的一天,

蒂姆

最佳答案

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

appender.rolling.policies.time.interval = 1

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

关于java - Log4J2 (2.6) - 自动删除日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46236655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com