Спящий режим: как настроить уровень ведения журнала по умолчанию (регистратор SJF4J и JDK 1.4)?

У меня есть тестовое приложение JavaSE/Hibernate (на основе оболочки). Я поместил следующие файлы JAR в каталог lib проекта:

antlr-2.7.6.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar

Как видите, я использую SLF4J с регистратором JDK 1.4. Когда я запускаю свое тестовое приложение из оболочки, Hibernate очень многословен, потому что по умолчанию он установлен на уровень INFO:

09.12.2010 02:23:14 org.hibernate.annotations.common.Version <clinit>
INFO: Hibernate Commons Annotations 3.2.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.6.0.Final
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
09.12.2010 02:23:14 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : javassist
09.12.2010 02:23:14 org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
09.12.2010 02:23:14 org.hibernate.ejb.Version <clinit>
INFO: Hibernate EntityManager 3.6.0.Final
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Game
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Game on table Games
09.12.2010 02:23:15 org.hibernate.cfg.AnnotationBinder bindClass
INFO: Binding entity from annotated class: tld.standalone.bbstats.model.Roster
09.12.2010 02:23:15 org.hibernate.cfg.annotations.EntityBinder bindTable
INFO: Bind entity tld.standalone.bbstats.model.Roster on table Rosters
.
.
.

Как настроить уровень ведения журнала Hibernate, чтобы сказать ПРЕДУПРЕЖДЕНИЕ?

EclipseLink, например, позволяет указать уровень через свойство (persistence.xml):

<property name="eclipselink.logging.level" value="INFO" />
<property name="eclipselink.logging.level.sql" value="FINE" />

Есть ли аналог в Hibernate?


person Kawu    schedule 09.12.2010    source источник


Ответы (3)


Я всегда предпочитаю настраивать структуру ведения журнала с помощью центрального файла конфигурации вместо нескольких конкретных параметров ведения журнала библиотек, потому что это одна из причин вообще использовать структуру ведения журнала.

Похоже, Hibernate следует этой философии и, поскольку вы используете ведение журнала JDK, просто настроить уровень ведения журнала с помощью файла свойств.

person Heri    schedule 10.12.2010

В моем файле logging.properties я установил:

org.hibernate.SQL.level=FINEST // Show SQL statements
org.hibernate.type.level=FINEST // Show the bind parameter values
person Brian Leathem    schedule 20.12.2010

Самый простой способ сделать так, чтобы спящий режим не был таким подробным, — это добавить log4j-over-slf4j.jar к пути к классам. Это связано с тем, что hibernate использует log4j для ведения журнала, и когда вы добавите этот jar, все намерения ведения журнала пройти через log4j будут перенаправлены на slf4j.

person Diego Shevek    schedule 20.11.2012