我正在使用 RollingFile 附加程序。无论日志事件如何,我都希望每 20 分钟滚动一次日志文件。例如,在一个小时内我应该有 3 个日志文件,即使那个小时内可能没有任何日志记录。这可以使用 Log4j2 吗?如果是,请提供所需的配置(在 log4j2.xml 中)。
以下配置似乎不起作用:

       <RollingFile name="RECHARGE_NMCD" fileName="D:/rc_nmcd/rc_nmcd.log" append="true" bufferedIO="false" filePattern="D:/rc_nmcd/rc_nmcd_%d{yyyy-MM-dd-HH-mm}.process">
            <PatternLayout>
                <Pattern>%m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="20"/>
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

最佳答案

我不认为你可以让 Log4J2 开箱即用每 N 分钟滚动一次,看起来你可以让它每分钟、每小时、每天而不是 20 分钟执行一次。 (请参阅 https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/DailyRollingFileAppender.html - 您可以使用不同的日期模式将其更改为“每分钟”)

我还没有尝试过这个,但可能有一种方法可以通过提供自定义翻转策略来自定义它...

https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.html

如果这有效,请发布您的答案以供其他人学习!

关于java - 指定持续时间后 Log4j2 自动翻转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29672459/

10-13 06:31