Websphere все журналы собираются в SystemOut.log

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

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

1 ответ

Решение

Проблема может заключаться в том, что 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. Если они загружены разными загрузчиками классов, они не могут правильно видеть друг друга.

Другие вопросы по тегам