2013-09-03 2 views
1

Hibernate, как представляется, регистрирует нормальную информацию до System.err. Несколько примеров:Ведение журнала консоли Hibernate System.err

System.err: Sep 03, 2013 10:41:55 AM org.hibernate.annotations.common.Version <clinit> 
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.Version logVersion 
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.cfg.Environment <clinit> 
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.cfg.Environment buildBytecodeProvider 
System.err: Sep 03, 2013 10:42:02 AM org.hibernate.tool.hbm2ddl.TableMetadata <init> 

Всего около 70 из них. Моя установка каротаж выглядит следующим образом:

log4j-over-slf4j.jar 
slf4j-api.jar 
slf4j-simple-1.7.5.jar 

Я знаю, что SLF4J простые, per the SLF4J Manual, "outputs all events to System.err. Only messages of level INFO and higher are printed."

Зная это, я установить свойство org.slf4j.simpleLogger.logFile системы в System.out в specified in the SimpleLogger docs.

Однако это не изменило поведение, и я все еще получаю 70 + журналы Hibernate System.err.

Есть ли способ настроить Hibernate для вывода на System.err? Проблема в том, что эти сообщения System.err интерпретируются как WARN, тогда как они являются только информационными сообщениями.

+0

Вы ** действительно ** устанавливаете недвижимость? – akostadinov

+0

Насколько мне известно, да. Я провел некоторое тестирование, когда свойство не было установлено (по умолчанию System.err), и я получил больше журналов, которые были выведены на 'System.err'. После установки свойства эти заявления журналов ушли, но спящие были все еще там. – joshft91

ответ

0

Теперь, когда Hibernate 4.x использует JBoss для его регистрации, это вызывало проблему. This thread помог больше всего, и решение было установить системное свойство org.jboss.logging.provider=slf4j.

Включено slf4j-simple, чтобы получить все выходы Hibernate System.err. Используя системное свойство, упомянутое в исходном потоке, вы можете изменить выходы System.err на System.out.

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