Перезагрузка конфигурации журнала в JBoss 6 КАК

#logging #log4j #jboss6.x

#ведение журнала #log4j #jboss6.x

Вопрос:

В настоящее время я пытаюсь настроить ведение журнала в JBoss 6 и рассматриваю различные альтернативы. Мои требования таковы:

1) Автоматическая перезагрузка любых изменений конфигурации журнала без повторного развертывания приложения.

2) Несколько файлов журнала, по одному для каждого уровня журнала. Например, один MyApp-error.log, который регистрирует только сообщения об ошибках, MyApp-debug.журнал, в котором регистрируются только сообщения отладки и т.д. Это означает возможность устанавливать минимальный и максимальный уровни для каждого из добавителей / обработчиков, установленных для каждого файла.

Теперь я знаю, что могу использовать jboss-logging.xml файл, который поставляется с JBoss 6 AS. Я получаю автоматическую перезагрузку, используя этот файл, поскольку он использует преимущества функции горячего развертывания в JBoss (этот файл находится в каталоге deploy).

Однако я не могу настроить свой журнал таким образом, чтобы установить максимальный уровень для каждого из обработчиков. Я могу установить минимальный уровень, но это означает, что, например, мой файл отладки получит debug и все уровни выше. Не то, что мне нужно.

Другим вариантом было бы использование внешнего файла конфигурации. Например. log4j.xml . Этого можно достичь, установив системное свойство, как указано здесь. Хорошо, поскольку я могу использовать org.apache.log4j.varia.Фильтр LevelRangeFilter для ограничения максимального и минимального уровней журнала. Однако это не позволяет автоматически перезагружать конфигурацию ведения журнала без повторного развертывания приложения.

Есть ли какой-нибудь шанс, что я смогу получить оба требования, используя JBoss 6, будь то с поставляемой системой ведения журнала или с внешней?

Ответ №1:

1) Об автоматической перезагрузке.:
Вы должны иметь возможность периодически проверять log4j.xml файл для изменения, и если он изменится, то вызовите org.apache.log4j.xml.DOMConfigurator.configure(«<путь к log4j.xml >»).

Комментарии:

1. Даже это особенность Log4J. существует метод DOMConfigurator.configureAndWatch(«<путь к log4j.xml >», 20 * 1000), которая проверяет конфигурационный файл на наличие изменений и автоматически перезагружает его.