Настройка приложения Rolling File - PullRequest
1 голос
/ 01 апреля 2010

Файл журнала моего сервера приложений jboss с именем jboss-log4j.xml имеет следующую конфигурацию для приложения Rolling File

<appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
 <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
 <param name="File" value="${jboss.server.log.dir}/server.log"/>
 <param name="Append" value="false"/>
 <param name="MaxFileSize" value="500KB"/>
 <param name="MaxBackupIndex" value="1"/>

 <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
 </layout>      
</appender>

Что именно это делает? Как мне настроить его на выполнение одной из двух вещей? 1. Удалите журналы старше 5 дней или 2. Удалите журналы, если они превышают 800 МБ, чтобы после их удаления новые журналы могли вступить в силу

Ответы [ 2 ]

3 голосов
/ 01 апреля 2010

Большинство параметров объяснено в руководстве, которое я связал с вашим предыдущим вопросом здесь . Даже если это показывает параметры в файле свойств, имя и семантика параметров одинаковы.

AFAIK, вы не можете легко сделать файл журнала переворачивать каждые 5 дней. Наиболее близким к этому является еженедельный ролловер. Для этого вы должны использовать DailyRollingFileAppender, как я показал в моем предыдущем ответе, и установить его шаблон даты на

<param name="DatePattern" value="'.'yyyy-ww"/>

См. Варианты использования DailyRollingFileAppender здесь .

Установка ограничения размера RollingFileAppender, показанного в вашем сообщении, на 800 МБ вместо 500 КБ - это задача, которую, я уверен, вы можете решить самостоятельно; -)

Таким образом, вы можете легко получить файл журнала, переворачивающий либо в начале каждой недели или при достижении указанного предельного размера. Однако у меня есть смутное воспоминание о том, что эти двое не идут вместе. У вас либо DailyRollingFileAppender, либо RollingFileAppender - Log4J не предоставляет приложению функции и одновременно. Ни в коем случае не переворачивать файл журнала каждые 5 дней - единственный способ добиться этого - реализовать собственный настраиваемый appender.

1 голос
/ 25 августа 2014

Вы спрашиваете, как удалить журналы старше 5 дней. Как правило, мы устанавливаем задание cron, которое использует find для удаления старых файлов журнала и zip-файлов, которые не так стары. Например:

find /apps/atg/$JBOSS_VERSION/jboss-as/server/${inst_name}/log \
  -name "*.log.2*" -type f -mtime +14 -exec rm {} \;
find /apps/atg/$JBOSS_VERSION/jboss-as/server/${inst_name}/log \
  -name "*.log.2*" ! -name "*.gz" -type f -mtime +3 -exec gzip {} \;
...