Я делаю следующее: переносит несколько устаревших приложений из WebLogic в JBoss EAP 7. Некоторые из компонентов, портированных, являются EJB. Другие - сервлет-приложения, которые вызывают эти EJB. Эти EJB развернуты в ejb-jars. Я знаю, что я мог бы обернуть все это в большой файл EAR, но мы не хотим этого делать. Сервлеты и банки EJB должны быть отдельно развертываемыми компонентами.log4j2 протоколирование кода в банке EJB на JBoss EAP 7
Тогда есть настройка регистрации. Мы используем log4j2, и мы хотим сохранить независимость от настройки ведения журнала JBoss. Я создал модуль JBoss, который содержит все банки log4j2 с соответствующими зависимостями и работает журнал. Сервлет запускается и регистрируется, вызывает EJB, и они работают.
Единственная проблема заключается в том, как настроить ведение журнала EJB. В веб-приложении, таком как сервлет, просто, просто укажите файл конфигурации log4j в web.xml. Каков аналог для банка ejb? Я не мог придумать способ.
Я пробовал следующее: Добавить регистратор/приложение в конфигурацию приложения сервлета для пакета EJB и указать новый файл. Это не работает. Новый файл журнала создается, но ничего не записывается в файл журнала. Должен быть выход, но нет, так что, очевидно, при запуске EJB его LogManager не использует конфигурацию, указанную в сервлет.
Каков правильный способ задания конфигурации log4j2 в EJB, развернутой в банке EJB на JBoss EAP7?
Возможно, будет работать 'JndiContextSelector'? https://logging.apache.org/log4j/2.0/log4j-core/apidocs/org/apache/logging/log4j/core/selector/JndiContextSelector.html И не увлекать это, но если у вас есть какие-либо комментарии о том, как вы используйте log4j2 с WildFly, не стесняйтесь добавлять их здесь https://issues.jboss.org/browse/WFCORE-482 :) –
Спасибо, Джеймс. Я думал об этом. Казалось, что это может сработать, но моя первая попытка потерпела неудачу. Без сомнения, я сделал что-то неправильно, но хорошо знать, что я был, по крайней мере, на правильном пути.Возможно, вы можете взглянуть на http://mail-archives.apache.org/mod_mbox/logging-log4j-user/201611.mbox/browser и сказать мне, что я сделал неправильно. –
Я * думаю * вы можете просто установить системное свойство 'Log4jContextSelector' https://logging.apache.org/log4j/2.x/manual/configuration.html. Я не тестировал это. –