Вход из Spring с использованием Log4j под WebSphere
Я использую log4j в моем приложении WebSphere. Мне нужно отладить класс org.springframework.ejb.access.AbstractRemoteSlsbInvokerInterceptor
, поэтому я создал logger в моем файле log4j.xml:
<logger name="org.springframework">
<level value="INFO" />
</logger>
<logger name="org.springframework.ejb.access">
<level value="TRACE" />
</logger>
Я также создал commons-logging.properties
в src/main/resources веб-проекта (в maven):
org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger
Тем не менее, Spring НЕ регистрируется с использованием log4j. Я не вижу журналов Springframework в моем файле отладки, но я вижу некоторые из них (INFO) в консоли. Поэтому я предполагаю, что протоколирование Apache Commons, используемое Spring, НЕ ведется с использованием log4j.
Можно ли (и как) перенаправить журналирование, используемое Spring, на движок Log4j под WebSphere?
WebSphere 7.0, Spring 3.1.2, log4j 1.2.6, регистрация общего доступа 1.1 в общей библиотеке.
2 ответа
Попробуйте следующее:
- Подумайте об использовании slf4j для вашей регистрации. Добавьте log4j к вашим зависимостям в maven.
- Добавьте jcl-over-slf4j к вашим зависимостям maven. Это перенаправляет каждый запрос с jcl на slf4j.
- Выполните поиск в журнале зависимостей внутри ваших зависимостей maven. Исключите его, чтобы он не попал в ваш архив развертывания.
- Удалите файл "commons-logging.properties".
Я надеюсь, что теперь все работает хорошо.
Этот метод для маршрутизации журналирования JCL (включая Spring) к вашей конфигурации log4j по- прежнему работает.
Для приложений, в которых у нас также есть slf4j (Spring WebFlow), они также могут быть перенаправлены в вашу конфигурацию log4j.
Однако, если вы просто хотите просмотреть информацию о журнале Spring, вы можете увеличить его уровень регистрации до собственных журналов WebSphere (SystemOut.log) через консоль. Troubleshooting
> Logs and Trace
> имя сервера> Change log level details
,
Добавить что-то вроде : org.springframework.ejb.access.*=fine
(двоеточие является разделителем).
Я не знаю, каковы точные уровни WAS, но fine
, finer
, а также finest
перечислены в списке уровней "Трассировка", если развернуть область "Компоненты и группы", чтобы посмотреть, что доступно.
(Я не думаю, что имеет значение, что ваш конкретный пакет Spring не указан там, кстати. Я считаю, что он все еще должен успешно контролировать вашу регистрацию.)