Wildfly 13 - Правильная настройка проекта с использованием logback в ушном проекте - PullRequest
0 голосов
/ 09 января 2019

Я развертываю свое приложение как архив с ушами в wildfly 13. Ухо содержит войну и ejb. EJB используется в разных проектах. Я хочу записать информацию о войне и ejb в один файл, чтобы иметь полный контекст того, что произошло в одном лог-файле.

Мне удалось войти с войны через logback, но журналы из ejb не регистрируются через logback.

Моя текущая настройка:

  • В моем ear-модуле у меня есть jboss-deploy-structure.xml в моем ear-файле, чтобы исключить подсистему регистрации
  • В моем веб-модуле файл logback.xml находится в WEB-INF / classes
  • В моем веб-модуле у меня есть зависимости от logback-classic и slf4j
  • В моем ejb-модуле у меня есть зависимость от slf4j

Есть предложения?

1 Ответ

0 голосов
/ 09 января 2019

Если вы просто регистрируетесь в файл, вы можете использовать logging-profile , который позволит вам вносить изменения во время выполнения и не придется повторно развертывать приложение, если вы хотите внести изменения в конфигурацию журналирования. .

Использование WildFly Logging

Пример конфигурации профиля

/subsystem=logging/logging-profile=ear1:add
/subsystem=logging/logging-profile=ear1/pattern-formatter=PATTERN:add(pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n")
/subsystem=logging/logging-profile=ear1/periodic-rotating-file-handler=FILE:add(append=true, suffix=".yyyy-MM-dd", named-formatter=PATTERN, file={relative-to=jboss.server.log.dir, path="ear1.log"})
/subsystem=logging/logging-profile=ear1/root-logger=ROOT:add(level=INFO, handlers=[FILE])

Тогда вы просто добавите запись Logging-Profile: ear1 в манифест вашего EAR.

Использование Logback

Если вы хотите продолжить использовать logback, вам нужно поместить зависимости logback и slf4j в вашу директорию EAR/lib. Хитрость заключается в том, чтобы выяснить, куда поместить файл конфигурации logback. Это может работать в EAR/META-INF или в EAR/lib, но я не уверен. Это может даже сработать, если вы сохранили его в WAR/WEB-INF/classes, но вам нужно убедиться, что регистратор доступен в WAR, прежде чем он будет доступен в EJB.

Вы также захотите исключить модуль org.slf4j.api или подсистему logging для EAR и каждое подразделение в своем jboss-deployment-structure.xml.

...