2011-01-17 3 views
1

Я развертываю корпоративное приложение на Weblogic 8.1, у которого есть log4j 1.2.8 на пути к классу. Я получаю следующее сообщение об ошибке с SLF4J 1.6.1:Как использовать SLF4J Log4jLoggerAdapter

SLF4J версии 1.4.0 и более поздних требует log4j 1.2.12 или позже

http://www.slf4j.org/codes.html#log4j_version

Выше ссылка рекомендует использовать Log4jLoggerAdapter ,

Я изменил

Logger logger = LoggerFactory.getLogger(HelloWorld.class); 
logger.info("Hello World"); 

в

Log4jLoggerAdapter logger = (Log4jLoggerAdapter) LoggerFactory.getLogger(HelloWorld.class); 
logger.info("Hello World"); 

Тем не менее, я все еще встречая ошибку. Любые советы о том, как правильно это реализовать?

Спасибо.

slf4j-api-1.6.1.jar и slf4j-log4j12-1.6.1.jar находятся на моем пути развития и упакованы в APP-INF/lib моего EAR-файла. log4j 1.2.8 находится на пути к классам сервера приложений.

ответ

0

«SLF4J версии 1.4.0 и более поздние версии требуют log4j 1.2.12 или новее» - это только предупреждение. SLF4J 1.6.1 должен отлично работать с log4j 1.2.8. Другими словами, вам ничего не нужно менять. В частности, литье в Log4jLoggerAdapter не нужно, это никоим образом не поможет, кроме как сделать ваш код более уродливым.

1

Проблема заключается в том, что вы должны использовать один и тот же slf4j-api JAR и реализацию JAR (slf4j-log4j).

Убедитесь, что обе банки на вашем CLASSPATH имеют одинаковую версию. Кроме того, всегда ставлю только два из них:

  • АНИ JAR
  • JAR реализации (например, log4j адаптер, Juli регистратор, простой регистратор ...)

Редактировать: Глядя на сообщения об ошибке снова: вам, вероятно, понадобится либо обновить библиотеку log4j, либо понизить библиотеку slf4j. Они находятся в несовместимых версиях.

+0

Как указано в ссылке: «Однако, как сообщается в сообщении 68, в некоторых средах может быть сложно обновить версию log4j. Для учета таких обстоятельств Log4jLoggerAdapter SLF4J будет отображать уровень TRACE как DEBUG». Не существует ли способа обойти эту проблему? .. –

+0

Что вы хотите прочитать? Эти две версии несовместимы. Я бы пошел на понижение slf4j, это не проблема. – lzap