2015-01-30 1 views
1

Я пытаюсь добавить новый пользовательский log4j2 appender. Karaf 3.0.2 использует протокол pax-logging 1.7.4, который не поддерживает log4j2. У меня есть приложение, которое расширяет org.apache.logging.log4j.core.appender.AbstractAppender.Добавить пользовательский log4j2 appender для регистрации Karaf и Pax

Я следил за этим блогом http://blog.nanthrax.net/2012/12/create-custom-log4j-appender-for-karaf-and-pax-logging/ автором Jean-Baptiste. Это не сработает, потому что мой appender написан в log4j2.

Каковы альтернативы для того, чтобы karaf также мог использовать это приложение?

ответ

3

Ответ уже в вашем вопросе, он не работает, и как это предполагается. Версия 3.0.2 от Karaf использует протокол Pax 1.7.x, который не поддерживает Log4j2. Итак, вы просто не можете зарегистрировать пользовательский appender для log4j2, создать приложение Log4j и добавить его в свою конфигурацию.
Или обновите до Karaf 3.0.3, который использует Pax Logging 1.8.x, который теперь также поддерживает Log4j2. Можете попробовать это.

+0

Спасибо, Ахим, я скачал karaf 3.0.3, сначала я попытался распечатать журнал, используя log4j2 'LogManager.getLogger()'. Я получаю ошибку 'ERROR StatusLogger Log4j2 не смог найти реализацию протоколирования. Добавьте log4j-core в путь к классам. Использование SimpleLogger для входа в консоль'. Что это значит? –

+0

https://issues.apache.org/jira/browse/LOG4J2-373 Это не должно быть проблемой, так как я использую версию log4j версии 2.1 в моем pom.xml. Любые указатели? –

+0

Также получение ошибки 'Невозможно решить 112.0: недостающее требование [112.0] osgi.wiring.package; (& (Osgi.wiring.package = org.apache.logging.log4j) (версия> = 2.1.0) (! (Версия> = 3.0.0))) '. Я думаю, нам не нужно устанавливать пакеты log4j-api и log4-core вручную, поскольку karaf должен предоставлять эти пакеты. –