TimeBasedTriggeringPolicy log4j2在新的一天发生时不会翻转

时间:2018-02-06 06:31:08

标签: log4j2 rollover

我已经使用以下配置配置了Log4j2,但是TimeBasedTriggeringPolicy无法正常工作,我在旧日的日志中获取新的日志,请你帮忙。它正在适当地滚动大小,它也创建了任意数量的文件,因为我已经指定了" nomax" DefaultRollOverStrategy的属性,只有TimeBasedTriggeringPolicy不起作用。它在前一天的日志文件中写入一天的日志。它确实创建了具有最新日期的新日志文件,但是某些日志已登录到前一天的日志中。正确地命名文件可能会遇到问题我不知道。

StorageFolder

2 个答案:

答案 0 :(得分:0)

CronTriggeringPolicy怎么样?这将在每天凌晨12点为您触发翻转:

{"CronTriggeringPolicy": {"schedule": "0 0 0,12 * * ?"}

这样,它就不会依赖于文件模式,而且应该按照cron间隔滚动日志。我也不知道你如何确定前一天的日志包含在翻转中,但要确保你的系统时间是同步的。

答案 1 :(得分:0)

添加:

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/</path>
            </configuration>
        </plugin>
    <plugins>
<build>

政策解决了问题。

来自log4j2文档: OnStartup触发策略如果日志文件早于当前JVM的开始时间且达到或超过最小文件大小,则OnStartupTriggeringPolicy策略会导致翻转。 OnStartupTriggeringPolicy 参数: minSize:long:文件必须翻转的最小大小。无论文件大小是多少,大小为零都会导致翻转。默认值为1,这将阻止滚动空文件