Файлы журналов, не созданные с помощью Hibernate и slf4j - PullRequest
1 голос
/ 23 июля 2010

В моем приложении я использую Hibernate, Apache Commons Logging и Log4J. Но мои файлы журнала не генерируются. Это потому что Hibernate использует slf4j?

В моем классе есть следующие банки.

  • зимуют-3.2.7.ga.jar
  • спящий-аннотаций-3.4.0.GA.jar
  • спящей-Викисклад аннотации-3.3.0.ga.jar
  • зимуют-ядро-3.3.2.GA.jar
  • зимуют-EntityManager-3.4.0.GA.jar
  • SLF4J-апи-1.5.6.jar
  • SLF4J-JCL-1.5.6.jar
  • Обще-каротаж 1.1.1.jar
  • log4j-1.2.16.jar
  • log4j.properties

Я обнаружил, что Hibernate использует slf4j. Я хочу, чтобы ведение журнала было делегировано по следующему маршруту -

slf4j-api -> slf4j-jcl -> ведение общего журнала -> log4j

Но я не получаю ни журналы Hibernate, ни журналы своих приложений.

В чем может быть причина?

Ответы [ 2 ]

1 голос
/ 23 июля 2010

Начиная с версии 3.3, Hibernate действительно использует SFL4J вместо JCL (это HHH-2696 ), и ваши вызовы делегата зависимостей в SLF4J для JCL выглядят корректно.

Однако, почему у вас есть и hibernate-3.2.7.ga.jar (который BTW использует Commons Logging) и hibernate-core-3.3.2.GA.jar?Интересно, не вызывает ли это никакого конфликта.Попробуйте очистить путь к классам и посмотрите, не появится ли после этого трассировка ошибок при запуске.

Но я бы лично попытался избавиться от JCL, а не делегировать его.Если у вас есть код, использующий JCL, и если JCL не является формальным требованием, замените commons-logging-1.1.1.jar на jcl-over-slf4j.jar ( JCL-over-SLF4J bridge).

См. Также

0 голосов
/ 27 июля 2010

Я здесь, чтобы упомянуть, что я решил проблему.

Я использовал жену , и в банке есть log4j.properties. Он загружался до log4j.properties моего приложения. Я отменил заказ, и теперь он работает!

Спасибо, ребята, особенно за то, что помогли мне с банками Hibernate.

...