将log4j2 SizeBasedTriggeringPolicy与CronTriggeringPolicy结合

时间:2019-01-28 16:30:14

标签: java logging log4j2

我尝试将log4j2 SizeBasedTriggeringPolicy与CronTriggeringPolicy结合使用,以便像这样在午夜或每20MB(每分钟或每100KB用于测试)滚动文件(请参见TriggeringPolicies):

<RollingFile name="RollingFile"
    filePattern="target/logs/foobar-%d{yyyyMMdd-HHmmss}{UTC}.log">
    <Layout type="PatternLayout" pattern="%date{DEFAULT} | %message%n" />
    <Policies>
        <SizeBasedTriggeringPolicy size="100KB" />
        <CronTriggeringPolicy schedule="0 * * * * ? *" evaluateOnStartup="true" />
    </Policies>
</RollingFile>

不幸的是,只有CronTriggeringPolicy可以在此组合中使用。达到文件大小限制时,不会进行任何翻转。 从配置中删除“ CronTriggeringPolicy”将使翻转每100KB发生一次。

请注意我不能使用TimeBasedTriggeringPolicy的事实,因为我需要在文件名模式中输入第二个准确的日期,但我想每天滚动一次(或在此处进行测试的每一分钟)。

使用CronTriggeringPolicy时,这是(无法将CronTriggeringPolicy与其他策略结合使用的)已知错误或限制吗?


我提供了一个正在运行的示例项目。 https://github.com/FrVaBe/logging

只需运行Main类并监视target/logs中生成的文件。在此项目的设置中,它们每30秒滚动一次,但是当达到100KB大小时它们应该已经旋转了(在我的计算机上不会持续30秒)。

0 个答案:

没有答案