Log4J в состоянии восстановить с диска полный? - PullRequest
7 голосов
/ 27 августа 2009

У нас работает несколько серверов приложений Java, с несколькими приложениями. Все они регистрируются с Log4J в одной файловой системе, которую мы создали только по этой причине. Время от времени случается так, что файловой системе не хватает места, и приложение получает

log4j:ERROR Failed to flush writer,                                             
java.io.IOException

К сожалению, Log4J не восстанавливается после этой ошибки, поэтому даже после освобождения места в файловой системе журналы из этого приложения больше не записываются. Есть ли какие-либо варианты, будь то программирование или настройка, чтобы снова запустить Log4J, кроме перезапуска приложения?

Ответы [ 3 ]

3 голосов
/ 02 октября 2012

Я не проверял это, но веб-сайт logback сообщает:

Изящное восстановление после сбоев ввода-вывода

FileAppender Logback и все его подклассы, включая RollingFileAppender, может корректно восстанавливаться после сбоев ввода-вывода. Таким образом, если файловый сервер временно выходит из строя, вам больше не нужно перезапускать приложение только для того, чтобы регистрация снова заработала. Как только файл сервер возвращается, соответствующий аппендик и быстро восстановиться после предыдущего состояния ошибки.

Я предполагаю, что то же самое будет верно для вышеуказанной ситуации.

1 голос
/ 27 августа 2009

Что, по вашему мнению, является приемлемым результатом здесь? Я хотел бы написать новый Appender, который оборачивает тот, кто аппендирует на диск и пытается сделать что-то разумное, когда обнаруживает IOException. Может быть, заставить его обернуть основные методы записи Appenders в блок try-catch и отправить вам или системному администратору электронное письмо.

0 голосов
/ 27 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...