log4j2 RollingFileAppender CronTriggeringPolicy throws NoSuchFileException - PullRequest
0 голосов
/ 06 июня 2018

Я использую версию 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

Но если я обновлю свой filePattern с% i до C: //ssvp-api.log//api.%d {yyyyMMdd.HHmm} -% i.log все работает нормально, но яне хочу, чтобы в имени моего файла журнала был указан дополнительный номер файла (например, api.20180606.1448-1.log)

Есть ли шанс избежать наличия номера файла в имени файла журнала?

1 Ответ

0 голосов
/ 07 июня 2018

Наконец, я обнаружил, что версия log4j2 2.7 содержит несколько проблем, связанных с функциональностью CronTriggeringPolicy, а именно: https://issues.apache.org/jira/browse/LOG4J2-1487 https://issues.apache.org/jira/browse/LOG4J2-1640 Обновление до версии 2.8.1 решило мою проблему.

...