SLF4J + выход из системы + JBoss 7? - PullRequest
9 голосов
/ 21 сентября 2011

Кто-нибудь получил SLF4J / logback для работы с JBoss 7?

Ранее я мог заставить свое приложение работать в JBoss 5.1, поместив мой «logback.groovy» в [server] / conf и ядро ​​logback, classic (0.9.28) и Groovy (1.8.0). ) JAR-файлы в [server] /lib.

Для JBoss 7.0.1 у меня настроены модули Groovy и logback, все в порядке (файлы .index созданы), файл MANIFEST.MF моего EAR объявляет зависимости для обоих модулей, а мой logback.groovy - развернут в моих WAR-модуле WEB-INF / classes, в моем EAR. EAR определенно использует OK - индикаторы зеленые ...

Несмотря на это, единственные правила ведения журнала, которые фактически применяются, - это стандартные console / server.log, установленные в standalone.xml. Да, я вижу свои операторы журнала (так работает SLF4J), но мои правила входа в систему, дополнения и т. Д. Игнорируются. Нет ссылок ни на logback, ни на Groovy ни в одном из этих журналов, поэтому я предполагаю, что не сделал достаточно для запуска загрузки logback и нахождения моего скрипта.

Есть и другие вещи, которые я мог бы попробовать, но было бы хорошо узнать, пробовали ли это другие люди. Если нет, возможно, это признак того, что я должен просто добавить свою долю в JBoss Logging?

Ответы [ 2 ]

9 голосов
/ 22 сентября 2011

Вы уверены, что вход в систему активен? Если logback не может найти файл конфигурации, то есть logback.groovy или logback.xml, он выведет на консоль предупреждающее сообщение. Вывод должен быть похож на:

12:49:22,078 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
12:49:22,093 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration.

Видите ли вы такой вывод на консоли? Если нет, предполагая, что Jboss 7 связан с slf4j-привязкой, вы, вероятно, уже используете протоколирование Jboss. (Ваши звонки в API slf4j отправляются в журнал jboss вместо входа в систему.)

С людьми Jboss следует связаться по поводу использования бэкэнда регистрации, отличного от jboss-logging.

Копая немного дальше, я заметил, что JAS7 поставляется с файлом с именем slf4j-jboss-logmanager-1.0.0.GA.jar , расположенным под . / Modules / org / slf4j / папка impl / main / . Содержимое этого файла показывает, что это определенно привязка slf4j. Я не знаю, как работают «модули» Jboss, но удаление / отключение slf4j-jboss-logmanager - это путь, если вы хотите, чтобы logf-classic был подхвачен slf4j.

6 голосов
/ 22 сентября 2011

JBoss AS7 использует jboss-logmanager.Я предполагаю, что приложению logback потребовался бы менеджер журнала, который может обработать их.Я не совсем уверен, что произойдет, если вы отключите менеджер журналов.

Существует поддержка пользовательских java.util.logging.Handler'ов, так что вы можете написать оболочку для appender в обработчике.Я знаю, что это, вероятно, не идеально, но это должно работать.

Я бы посоветовал всем использовать JBoss Logging, и не только потому, что я над ним работаю :-) У него действительно есть некоторые приятные функции, такие как var-arg logметоды, которые привлекли меня к этому в первую очередь.Существует также поддержка журналирования i18n и сообщений через интерфейсы.

Также JBoss Logging - это больше, чем просто API.Это полная структура ведения журнала.В следующем выпуске JBoss Logging мы предложим способ указать, какой менеджер журналов вы бы хотели использовать.Это может сделать что-то вроде этого немного проще, но я должен признать, что я не тестировал в AS7.Если у меня будет время, я пойду.

...