У меня есть приложение из WAR-пакетов Spring Boot, которые необходимо перенести в Red Hat EAP 7.1.5.
В моей текущей настройке я делаю следующее:
- Каждая WAR имеет отдельный log4j2 XML для каждой среды.
- Это имя файла XML определено в файле web.xml
- Папка, содержащая log4j2_xxxx.xml, добавляется в путь к классам в сценарии запуска JVM.
- WAR распределяются по нескольким экземплярам времени выполнения с возможностью размещения на одном хосте нескольких WAR.
Я хотел бы повторить то же самое, используя EAP.Я вижу, что внешняя XML-конфигурация log4j2 успешно загружается, но не вижу никаких записей журнала.
Я использую следующие зависимости для упаковки log4j2 org.springframework.boot.spring-boot-starter-log4j2 (версия 1.5.7) org.apache.logging.log4j.log4j-web (версия 2.10.0)
Я попробовал следующее:
- Определить пользовательский модуль в $ JBOSS_HOME / modules /
- Добавить XML log4j2 в ту же папку.
- Обозначайте это как global-module в standalone.xml
Когда я развертываю WAR, я вижу, что создается ожидаемый файл журнала, что означает, что XML-конфигурация log4j2 успешно читается.Однако никакие журналы не записываются вообще в файл журнала приложения.
Я пытался обойти это, определив XML-структуру jboss-развертывания следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j" />
<module name="org.jboss.log4j.logmanager" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.commons.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
</exclusions>
<exclude-subsystems>
<subsystem name="logging"/>
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
В результате ведение журнала приложения удаляется из журнала JBOSS по умолчанию (сервер).log), но не записывает журналы в указанный журнал.
Я ожидал бы, что все ведение журнала в приложении будет записано в файл, определенный внешней XML-конфигурацией log4j2.Есть идеи, что мне не хватает?