объединить log4j2 SizeBasedTriggeringPolicy с CronTriggeringPolicy - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь объединить log4j2 SizeBasedTriggeringPolicy с CronTriggeringPolicy для пролистывания файла в полночь или каждые 20 МБ (каждую минуту или каждые 100 КБ для тестирования) следующим образом (см. 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» из конфигурации позволит перекатываться каждые 100 КБ, как и ожидалось.

Остерегайтесь того факта, что я не могу использовать TimeBasedTriggeringPolicy, потому что мне нужно иметь вторую точную дату в шаблоне имени файлано я хочу пролонгировать каждый день (или каждую минуту для тестирования здесь).

Является ли это (невозможность объединения CronTriggeringPolicy с другими политиками) известной ошибкой или ограничением при использовании CronTriggeringPolicy?


Я предоставил пример работающего проекта.https://github.com/FrVaBe/logging

Просто запустите основной класс и наблюдайте за файлами, которые генерируются в target/logs.В настройках этого проекта они переворачиваются каждые 30 секунд, хотя они должны уже вращаться при достижении размера 100 КБ (что не будет длиться 30 секунд на моем компьютере).

...