Роллинг Логи в LIFERAY DXP - PullRequest
       30

Роллинг Логи в LIFERAY DXP

0 голосов
/ 08 февраля 2019

Я столкнулся с проблемой при попытке настроить стратегию прокрутки журнала в Liferay DXP.В файле portal-log4j-ext.xml я хотел:

  • Создать скользящую стратегию ведения журнала на основе максимального размера файла и даты, добавленной в конце имени файла.
  • Создание стратегии ежедневного скользящего журнала, которая создает файл ежедневного журнала со сжатием.

Над portal-log4j-ext.xml:

<appender name="PROJECT" class="org.apache.log4j.RollingFileAppender">
    <!-- The active file to log to -->
    <param name="file" value="@liferay.home@/logs/logging/liferay@spi.id@.%d.log" />
    <param name="MaxFileSize" value="5KB"/>
    <param name="MaxBackupIndex" value="100"/>
    <param name="append" value="true" />
    <param name="encoding" value="UTF-8" />

    <!-- Keep one backup file -->
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" value="@liferay.home@/logs/logging/archive/liferay@spi.id@.%d.log.gz" />
    </rollingPolicy>

    <layout class="org.apache.log4j.EnhancedPatternLayout">
        <param name="ConversionPattern" value="[%d{dd.MM.yyyy HH:mm:ss}{Europe/Paris}] %-5p [%t][%c{1}:%L] %m%n" />
    </layout>
</appender>

<root>
    <priority value="INFO" />
    <appender-ref ref="PROJECT" />
    <!--appender-ref ref="CONSOLE" /-->
    <!--appender-ref ref="XML_FILE" /-->
    <!--<appender-ref ref="TEXT_FILE" />-->
</root>

Вот сгенерированные файлы журналов:

enter image description here

Проблема в том, что датане добавляется к сгенерированным файлам, и TimeBasedRollingPolicy не работает.

Я использую Log4j 1.2

У вас есть какие-либо предложения?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

В вашем portal-log4j-ext.xml отсутствуют компоненты в иерархии:

log4j: конфигурация

<appender class="org.apache.log4j.rolling.RollingFileAppender" name="TEXT_FILE">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
    </rollingPolicy>

    <layout class="org.apache.log4j.EnhancedPatternLayout">
    </layout>
</appender>

Пример из: https://www.e -systems.tech / blog / - / blogs / customizing-portal-log4j-xml

Вторым моментом является то, что вы, похоже, создаете нового аппендера, вы не можете сделать это из -ext.xml, по крайней мере, без перенастройки регистраторов из .xml для его использования.На практике это работа исходного файла, а не ext.

0 голосов
/ 08 февраля 2019

Пересмотрите свою стратегию

Прежде чем я запишу ответ: вам следует пересмотреть свою стратегию ведения журнала.У вас не будет « файла ежедневного журнала» в зависимости от вашей текущей конфигурации, поскольку может быть до 100 файлов ежедневного журнала, каждый размером 5 КБ.

Так что в худшем случаеу вас может быть 100 файлов, содержащих журналы того же дня, но другие файлы n отсутствуют, поскольку они превысили бы ваш MaxBackupIndex.

FileAppender

Если у вас очень ограниченное хранилище, вам следуетиспользуйте org.apache.log4j.RollingFileAppender с MaxFileSize и MaxBackupIndex.Однако вы не можете определить DatePattern здесь.

Если вы хотите добавить дату к имени файла журнала, вы должны использовать org.apache.log4j.DailyRollingFileAppender.Однако вы не можете ни определить MaxFileSize, ни MaxBackupIndex с помощью этого FileAppender, поэтому вам придется создать свой собственный пользовательский FileAppender .

RollingPolicy

Your RollingPolicyКонфигурация вроде бы в порядке.Я предполагаю, что вам придется добавить apache-log4j-extras зависимость в ваш проект, который содержит интерфейс RollingPolicy и его реализации (например, TimeBasedRollingPolicy).

...