2012-05-15 2 views
3

У нас очень старое приложение, развернутое на сервере Linux. Мы используем RollingFileAppender, который удаляет старые журналы из-за проблем с дисковым пространством.Вращение журнала со сжатием

Всякий раз, когда у нас возникает проблема, большинство журналов недоступно на диске. Если мы сжимаем файлы журнала, мы можем сохранить 100 файлов журнала вместо одного несжатого файла журнала.

Есть ли способ сжать файл, как только файл журнала заполняется, и удалить их после определенного момента времени [позволяет сказать, что в неделю.]

Я попытался с DailyRollingFileAppender, но он не работает как мы ожидаем.

Максимальный предел журнала - 500. Но приложение создает 200 журналов в час. Фактические журналы, содержащие сообщения об ошибках, могут быть недоступны для нас. Поэтому мы планируем закрепить все файлы журналов и удалить их через неделю.

+1

есть сценарий оболочки заархивировать журналы каждую ночь, а затем переместить их на вторичное устройство хранения – Satya

+0

«он не работает так, как мы ожидаем, что» ... так сказать нам, что вы * были * ожидали, и как «DailyRollingFileAppender» отличается от этого. – skaffman

ответ

1

да, пожалуйста, проверьте этот link. Он поддерживает это. Добавьте это в конфигурацию RollingFileAppender.

<appender...> 
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="/wombat/foo.%d{yyyy-MM}**.gz**"/> 
    </rollingPolicy> 
</appender> 
1

Я не знаю, поддерживает ли log4j это, но если вы перейдете к logback, у вас есть такая возможность.

http://logback.qos.ch/

Хайо

+1

+1 для мышления вне коробки –

0

да, сценарий оболочки или хрон http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5 бы решить вашу проблему довольно легко

+0

На большинстве серверов Unix существует существующий инструмент: http://linuxcommand.org/man_pages/logrotate8.html –

Смежные вопросы