Как включить в проект несколько файлов log4j2.xml?

Мой проект состоит из нескольких модулей. Каждый модуль может работать сам по себе и иметь отдельный файл log4j2.xml.

Скажем, Project X состоит из трех модулей:

  1. Модуль A имеет log4j2.xml (содержит регистраторы и приложения)
  2. Модуль B имеет log4j2.xml
  3. Модуль C имеет log4j2.xml

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

Чтобы избежать копирования и вставки, я искал XInclude для включения нескольких файлов, но он поддерживает только тогда, когда Appenders и Loggers находятся в разных файлах. http://logging.apache.org/log4j/2.x/manual/configuration.html#XInclude

Как сделать XInclude нескольких файлов log4j2.xml?

Любая помощь приветствуется.


person Kamal Chandraprakash    schedule 08.01.2016    source источник
comment
Они используют apache xerces в качестве синтаксического анализатора xml, и он не поддерживает такое включение (ASFAIK). Практически мертвый проект. Единственные решения, о которых я знаю, - это написать собственный плагин конфигурации (непростая задача) или использовать препроцессор xml, который поддерживает включения xpointer.   -  person alan7678    schedule 21.01.2016


Ответы (1)


В выпуске Log4j2 v2.6 добавлена ​​функция составной конфигурации. Эта функция позволяет использовать несколько файлов конфигурации log4j2.

Ссылки
 — https://issues.apache.org/jira/browse/LOG4J2-494
 – https://github.com/Kamal15/Log4j2Examples/blob/master/src/main/java/in/co/nmsworks/log4j2/examples/CompositeConfigurationExample.java

person Kamal Chandraprakash    schedule 16.07.2016