Как я могу получить log4j для удаления старых вращающихся файлов журнала?


Как я могу получить log4j для удаления старых вращающихся файлов журнала? Я знаю, что могу настроить автоматические задания (cron для UNIX и запланированные задачи для Windows), но я хочу, чтобы он был кросс-платформенным, и я хочу, чтобы он был в конфигурации журнала нашего приложения как часть нашего приложения, а не в отдельном коде снаружи на конкретных языках сценариев ОС. Наше приложение не написано на языках сценариев ОС, и я не хочу делать эту часть его в них.

3   51   2009-06-26 21:24:02

3 ответа:

RollingFileAppender это. Вам просто нужно установить maxBackupIndex на самое высокое значение для файла резервной копии.

журналы вращаются по какой-то причине, так что вы держите только так много файлов журнала Вокруг. In log4j.xml вы можете добавить это в свой узел:

<param name="MaxBackupIndex" value="20"/>

значение говорит log4j.xml чтобы сохранить только 20 повернутых файлов журнала Вокруг. Вы можете ограничить это до 5, Если хотите, или даже 1. Если ваше приложение не регистрирует так много данных, и у вас есть 20 файлов журналов, охватывающих последние 8 месяцев, но вам нужно всего лишь несколько недель журналов, то я думаю, что вам нужно настроить свой log4j.xml "MaxBackupIndex" и " MaxFileSize" параметры.

альтернативно, если вы используете файл свойств (вместо xml) и хотите сохранить 15 файлов (например)

log4j.appender.[appenderName].MaxBackupIndex = 15

нет значения по умолчанию для управления удалением старых файлов журнала, созданных DailyRollingFileAppender. Но вы можете написать свой собственный пользовательский приложение, которое удаляет старые файлы журнала во многом так же, как установка maxBackupIndex делает для RollingFileAppender.

простые инструкции найдены здесь

с 1:

Если вы пытаетесь использовать Apache Log4J DailyRollingFileAppender для ежедневного файла журнала, Вам может потребоваться указать максимальное количество файлов, которые должны храниться. Так же, как rolling RollingFileAppender поддерживает maxBackupIndex. Но текущая версия Log4j (Apache log4j 1.2.16) не предоставляет никакого механизма для удаления старых файлов журнала, если вы используете DailyRollingFileAppender. Я попытался внести небольшие изменения в исходную версию DailyRollingFileAppender, чтобы добавить свойство maxBackupIndex. Таким образом, можно было бы очистить старые файлы журналов, которые могут не потребоваться для будущего использования.