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

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

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

Существуют ли простые способы обойти это, то есть сделать "горячую" замену файла конфигурации log4j?

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

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

2 ответа

Решение

Похоже, 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

Другие вопросы по тегам