log4j2 RollingFileAppender CronTriggeringPolicy抛出NoSuchFileException

时间:2018-06-06 12:14:24

标签: java logging log4j2

我使用log4j2 2.7版本和 我有log4j2配置的appender应该每分钟翻转一次:

<Appenders>
    <Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
        <PatternLayout pattern="${LOG_PATTERN}"/>
    </Console>
    <RollingFile name="File" fileName="C://api.log"
                 filePattern="C://ssvp-api.log//api.%d{yyyyMMdd.HHmm}.log">
        <PatternLayout pattern="${LOG_PATTERN}"/>
        <Policies>
            <SizeBasedTriggeringPolicy size="50 MB"/>
            <CronTriggeringPolicy schedule="0 0/1 * * * ?"/>
        </Policies>
    </RollingFile>

</Appenders>

但由于某些未知原因,我在日志翻转期间收到以下异常:

2018-06-06 14:52:00,018 Log4j2-TF-3-Scheduled-1 ERROR Unable to move file C:\api.20180606.1448.log to C:\api.20180606.1448.log: java.nio.file.NoSuchFileException C:\api.20180606.1448.log -> C:\api.20180606.1448.log
2018-06-06 14:52:00,019 Log4j2-TF-3-Scheduled-1 ERROR Unable to copy file C:\api.20180606.1448.log to C:\api.20180606.1448.log: java.nio.file.NoSuchFileException C:\api.20180606.1448.log

但是如果我用%i更新我的filePattern到 C://ssvp-api.log//api.%d {yyyyMMdd.HHmm} - %i.log 一切正常,但是我不希望在我的日志文件名中包含其他文件编号(例如,api.20180606.1448-1.log)

是否有机会避免在日志文件名中包含文件编号?

1 个答案:

答案 0 :(得分:0)

最后,我发现log4j2 2.7版本包含一些与CronTriggeringPolicy功能相关的问题,它们是: https://issues.apache.org/jira/browse/LOG4J2-1487 https://issues.apache.org/jira/browse/LOG4J2-1640 更新到2.8.1版本解决了我的问题。