Hibernate: как настроить уровень ведения журнала по умолчанию (SJF4J и JDK 1.4 logger)? - PullRequest
3 голосов
/ 09 декабря 2010

У меня есть тестовое приложение 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, скажем WARNING?

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

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

Есть ли эквивалент в Hibernate?

Ответы [ 3 ]

4 голосов
/ 20 декабря 2010

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

org.hibernate.SQL.level=FINEST // Show SQL statements
org.hibernate.type.level=FINEST // Show the bind parameter values
4 голосов
/ 10 декабря 2010

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

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

0 голосов
/ 20 ноября 2012

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

...