2014-01-27 1 views
2

В моем проекте используется log4j2, и все выглядит нормально до запуска приложения, которое использует стороннюю библиотеку, использующую log4j 1.x. Когда наше приложение запускается, мы получаем раздражающую трассировку стека с использованием класса ClassNotFoundException на org.apache.log4j.ConsoleAppender. Я заметил, что одна из наших зависимостей имеет log4j.properties внутри своего jar, ссылаясь на org.apache.log4j.ConsoleAppender, поэтому я предполагаю, что это причина трассировки стека. Пара других зависимостей, вызывающих эту ошибку, включает в себя все, что угодно, используя классы ведения журнала JBoss, такие как встроенные стеклянные платки и пакеты сохранения продолжительности затмения.Как работать с зависимостями, используя log4j 1.x, когда в проекте используется log4j2

Я попытался добавить log4j-1.2.bridge api jar в classpath, и это не повлияло.

Кажется немного смешным включить оба контейнера для log4j2 и log4j1.x в наш путь к классу приложений. Есть ли другая альтернатива или исправить?

ответ

1

Эти ссылки, представленные ответы для меня:

https://issues.apache.org/jira/browse/LOG4J2-172
https://issues.jboss.org/browse/JBLOGGING-95

Похоже, мы используем устаревшую версию JBoss лесозаготовок, который не поддерживает log4j2. Тем не менее, я все еще не уверен, что делать для одной зависимости, которая включает log4j.properties.

[edit] Получается, что для этой зависимости работало баночник log4j-jcl-2.0.

+0

У меня проблема с тем же. simplejavamail в моем приложении использует log4j 1.2, и поэтому я ищу решение, которое не предполагает использование двух разных версий log4j. Вам удалось решить вашу проблему? – user3586195

+0

Вам нужно добавить log4j2 «1.2.x api bridge jar» в ваш проект. –

 Смежные вопросы

  • Нет связанных вопросов^_^