Websphere все журналы собираются в SystemOut.log - PullRequest
7 голосов
/ 15 ноября 2011

Я использую Log4j в своем приложении, и у меня есть несколько приложений для отладки и ошибок. Я проверил это на Tomcat и работает нормально. Генерация всех журналов в соответствующих файлах. Но когда я развертываю код на WAS6.1, все журналы генерируются только внутри SystemOut.log.

Пожалуйста, помогите!

1 Ответ

8 голосов
/ 15 ноября 2011

Проблема может заключаться в том, что WebSphere 6.1 использует Jakarta Commons Logging (JCL) для внутреннего использования, и если любой из вашего кода или сторонних библиотек также использует JCL, конфигурация WebSphere конфликтует с вашим приложением, пытающимся использовать log4j. Если это происходит, вы увидите именно то, что видите.

Существует несколько ссылок и сообщений в блоге , которые описывают способы решения этой проблемы. Мы нашли самое простое - создать файл с именем org.apache.commons.logging.LogFactory в каталоге META-INF/services вашего веб-приложения (в корне архива WAR). Этот файл должен содержать строку:

org.apache.commons.logging.impl.Log4jFactory

(По крайней мере, в более новых версиях WebSphere ...) Другой ключ заключается в том, что файл JCL должен быть загружен из того же места, что и файл log4j. например либо из WEB-INF / lib, либо из общей библиотеки. Таким образом, вы не можете вернуться к загрузке JCL из собственной предоставленной копии WebSphere. Если они загружены различными загрузчиками классов , они не могут нормально видеть друг друга.

...