Я использую Log4J 2.0 для создания журналов для проекта, который я делаю. Журналы небольшие, и у меня есть требование поддерживать их в течение 3 месяцев. Я хотел бы иметь журнал текущего месяца с 3 архивами (каждый из которых содержит месячные журналы).log4j2 ежемесячный журнал опрокидывания
Проблема, с которой мне нужна помощь, заключается в настройке log4j для поворота журналов в начале месяца (или в конце месяца).
Практически все, что я нашел, исследуя эту проблему, это log4j 1.x и говорит о параметре datePattern, который, как представляется, не существует в 2.0.
Вот мой log4j2.xml файл:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" name="NKMS" packages="">
<appenders>
<FastRollingFile name="LogFile" fileName="logs/Tier2HttpServer.log" filePattern="logs/app-%d{yyyy-MM-dd}.log.gz">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="%d %p %c{1.} [%t] %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
<DefaultRolloverStrategy max="4"/>
</FastRollingFile>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</appenders>
<loggers>
<logger name="mil.navy.nrl.itd.xml_filter" level="trace"/>
<root level="trace">
<appender-ref ref="STDOUT"/>
<appender-ref ref="LogFile"/>
</root>
</loggers>
</configuration>
Я пишу INFO и выше в файл журнала и отладки в консоли (на данный момент). Файлы записываются в порядке, но они кажутся ежедневно опрокидывающимися (по-видимому, по умолчанию).
Я попытался изменить файл FastRollingFile: filePattern на «.yyyy-MM», но это приводит к возникновению странных вещей (только одна запись записывается в файл, и архив сразу создается).
Я загрузил источник для log4j-2.0-beta8, а PatternProcessor анализирует значение RolloverFrequency, которое содержит перечисление RolloverFrequency.MONTHLY, но опять же я не могу понять, как его реализовать/использовать.
Как всегда, любая помощь или совет, которые вы можете предоставить, были бы ПРИГОВОРЕНЫ!
-Ace
Это правильно. Архив немедленно создается. Кроме того, только одна запись создается во вновь созданный журнал, и сбор журналов прекращается. Если я перезапущу приложение, тот же процесс повторяется. – AceFunk
JIRA билет создан. Мой первый, поэтому я надеюсь, что все правильно. :) https://issues.apache.org/jira/browse/LOG4J2-385 – AceFunk
Это ошибка Log8J 2.0 beta8. Файл filePattern выше должен действительно заставлять журналы опрокидываться ежемесячно. – AceFunk