Назад | Перейти на главную страницу

JBoss: перезагрузить конфигурацию log4j без перезапуска сервера?

Мы используем серверы приложений JBoss для наших новых веб-приложений, которые используют Apache log4j для ведения журнала. Мы используем JBoss уже несколько месяцев, и все работает отлично, с централизованной конфигурацией действительно приятно работать.
Кроме того, как вы, возможно, знаете, вы можете развертывать и отменять развертывание приложений и файлов конфигурации (например, mail-service.xml) во время запуска, то есть без перезапуска сервера.

Если вы измените jboss-log4j.xml config, JBoss не распознает изменения, пока вы не перезапустите его. Это немного раздражает - кажется странным, что конфигурация log4j - единственная конфигурация, которую нельзя «горячо заменять» во время работы сервера.

Есть ли простые способы обойти это, т.е. сделать возможным «горячую замену» файла конфигурации log4j?

Я слышал о решении, включающем какой-то сервлет, который, я полагаю, перезагрузит новый файл jboss-log4j.xml. Кто-нибудь делал это раньше и мог бы дать несколько советов / инструкций или место, где мы могли бы это найти?

Настроить: Мы используем JBoss EAP 5.0 на машинах Ubuntu 10.04 с последней версией log4j .jar, если это важно.

Похоже, JBoss действительно автоматически перезагружает конфигурацию log4j. Но, в отличие от других файлов с возможностью горячей замены (например, развертывания или другой конфигурации сервера), это происходит не мгновенно, а с заданным интервалом в 60 секунд.

Думаю, я был слишком голоден и нетерпелив, чтобы заметить это.

Вот еще немного информации по этому поводу:
http://blog.techstacks.com/2009/03/dynamically-updating-log-levels-in-jboss.html

Мы делаем это на уровне приложения через Java, а-ля http://logging.apache.org/log4j/1.2/faq.html#a3.6