Регистрация Tomcat с помощью Slf4j и Log4j - PullRequest
9 голосов
/ 04 ноября 2011

У меня развернуто веб-приложение на сервере Tomcat 7. Мое приложение использует log4j и file appender. Однако не все сообщения журнала записываются в файл.

На моем пути к классам у меня есть:

log4j-1.2.14.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar

Мой log4j.properties файл отлично работает на моем локальном компьютере и правильно развернут.

Я вижу сообщения об ошибках, сгенерированные приложением, которые записываются в catalina.out, которые не записываются в мой log4j log. Сообщения журнала в catalina.out выглядят поступающими от какой-то другой структуры ведения журнала, потому что шаблон вывода находится в другом формате, чем мой шаблон log4j. Регистрация, которую я вижу в catalina.log, выглядит так:

Nov 4, 2011 11:05:31 AM org.apache.myfaces.shared_impl.util.StateUtils reconstruct
SEVERE

И мой шаблон log4j выглядит так:

2011-11-03 16:42:09,336 ["http-bio-8080"-exec-13] ERROR

Некоторая запись появляется в моем log4j файле журнала, но не во всех. Из того, что я прочитал, slf4j просто нужны эти jar-файлы для направления вывода журнала. Есть идеи?

Ответы [ 3 ]

12 голосов
/ 05 ноября 2011

Похоже, класс StateUtils использует java.util.logging (jul). Разумеется, другие классы myfaces также используют jul. Таким образом, вы, вероятно, захотите направить журналы регистрации через SLF4J. Взгляните на мостовые устаревшие API , в частности мост jul-to-slf4j.

Пожалуйста, смотрите SLF4JBridgeHandler javadocs для инструкций по использованию при установке jul-to-slf4j.

2 голосов
/ 08 января 2013

Сконфигурируйте свой сервер Tomcat в соответствии с шагами, описанными в http://adfinmunich.blogspot.de/2012/03/how-to-configure-tomcat-to-use-slf4j.html. В этой записи блога описано, как заменить java.util.logging на slf4j (используя log4j за фасадом).

2 голосов
/ 04 ноября 2011

попробуйте включить в качестве зависимости jcl-over-slf4j.Возможно, myfaces использует ведение журнала.

проверьте документы slf4j: http://www.slf4j.org/legacy.html#jcl-over-slf4j

...