Роллинг Логи в LIFERAY DXP
Я столкнулся с проблемой при попытке настроить стратегию прокрутки журнала в 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>
Вот сгенерированные файлы журналов:
Проблема в том, что дата не добавляется к сгенерированным файлам, а TimeBasedRollingPolicy не работает.
Я использую Log4j 1.2
Есть ли у вас предложения?
Заранее спасибо.
2 ответа
Пересмотрите свою стратегию
Прежде чем я запишу ответ: вы должны пересмотреть свою стратегию регистрации. У вас не будет "ежедневного файла журнала", основанного на вашей текущей конфигурации, потому что может быть до 100 ежедневных файлов журнала, каждый размером 5 КБ.
Таким образом, в худшем случае вы можете иметь 100 файлов, содержащих журналы одного дня с другим n
файлы отсутствуют, потому что они превысили бы ваши MaxBackupIndex
,
FileAppender
Если у вас очень ограниченное хранилище, вы должны использовать org.apache.log4j.RollingFileAppender
с MaxFileSize
а также MaxBackupIndex
, Однако вы не можете определить DatePattern
Вот.
Если вы хотите добавить дату к имени файла журнала, вы должны использовать org.apache.log4j.DailyRollingFileAppender
, Тем не менее, вы не можете ни определить MaxFileSize
ни MaxBackupIndex
с помощью этого FileAppender, поэтому вам придется создать свой собственный FileAppender.
RollingPolicy
Ваша конфигурация RollingPolicy, кажется, в порядке. Я предполагаю, что вам нужно добавить зависимость apache-log4j-extras в ваш проект, который содержит RollingPolicy
Интерфейс и его реализации (например, TimeBasedRollingPolicy
).
В вашем portal-log4j-ext.xml отсутствуют компоненты в иерархии:
log4j: конфигурация Пример из: https://www.e-systems.tech/blog/-/blogs/customizing-portal-log4j-xml Вторая деталь заключается в том, что вы, похоже, создаете нового appender, вы не можете сделать это из -ext.xml, по крайней мере, без перенастройки регистраторов из.xml для его использования. На практике это работа исходного файла, а не ext.<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>