log4j2 SizeBasedTriggeringPolicy создает файлы каждую минуту - PullRequest
0 голосов
/ 10 мая 2018

У меня есть log4j2.xml с одним из приложений, как показано ниже:

        <RollingFile name="performance" 
            filePattern="/logs/myapp/myapp.%d{yyyy-MM-dd}.%i.perf.log"
            append="true">
            <Policies>
                <CronTriggeringPolicy schedule="0 * * * * ?" evaluateOnStartup="true"/>
                <SizeBasedTriggeringPolicy size="500 MB"/>                  
            </Policies>
        </RollingFile>

Таким образом, идея состояла в том, чтобы иметь политику crontrigger для создания нового файла журнала каждый день, но также установить опрокидывание в течение дня, когда размер файла достигает 500 МБ.

Но в результате создается файл журнала, который создается каждую минуту, например

myapp.2018-05-10.1.perf.log

myapp.2018-05-10.2.perf.log

...

myapp.2018-05-10.121.perf.log

Не уверен, что мне здесь не хватает. Любая помощь / предложения с благодарностью.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

хорошо, я использовал новейший подход, удаляющий противозаконную политику, и это, похоже, не сработало.Например, файлы журналов May13 были записаны в файлы myapp.2018.05.12.2.perf.log и May14 и записаны в файлы myapp.2018.05.13.1.perf.log

-rw-r--r-- app app  57329 May 12 23:56 myapp.2018.05.12.1.perf.log
-rw-r--r-- app app 335745 May 13 23:56 myapp.2018.05.12.2.perf.log
-rw-r--r-- app app 515998 May 14 07:55 myapp.2018.05.13.1.perf.log
0 голосов
/ 10 мая 2018

Ваше выражение cron неверно.

<RollingFile name="performance" 
        filePattern="/logs/myapp/myapp.%d{yyyy-MM-dd}.%i.perf.log"
        append="true">
        <Policies>
            <CronTriggeringPolicy schedule="0 0 12 1/1 * ? *" evaluateOnStartup="true"/>
            <SizeBasedTriggeringPolicy size="500 MB"/>                  
        </Policies>
    </RollingFile>

Вот правильный подход

<RollingFile name="performance" 
    filePattern="/logs/myapp/myapp.%d{yyyy-MM-dd}.%i.perf.log"
    append="true">
    <Policies>
            <OnStartupTriggeringPolicy />
            <SizeBasedTriggeringPolicy size="500 MB" />
            <TimeBasedTriggeringPolicy />
    </Policies>
</RollingFile>

Приложение может понять, на какой временной интервал мы ссылаемся, из-за шаблона, используемого для имени файла, «app.% D {MM-dd-yyyy}.% I.log.gz», что неявно устанавливает сворачивание каждый день и сжимает свернутый файл.

...