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

ご覧のとおり、JDK 1.4 ロガーで SLF4J を使用しています。シェルからテスト アプリを実行すると、デフォルトで INFO レベルに設定されているため、Hibernate は非常に冗長になります。

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に同等のものはありますか?

4

3 に答える 3

4

私の logging.properties ファイルでは、次のように設定しました。

org.hibernate.SQL.level=FINEST // Show SQL statements
org.hibernate.type.level=FINEST // Show the bind parameter values
于 2010-12-20T19:06:51.223 に答える
4

ライブラリのいくつかの特定のログ設定ではなく、中央の構成ファイルを使用してログ フレームワークを構成することを常に好みます。これが、ログ フレームワークを使用する理由の 1 つだからです。

Hibernate はその哲学に従っているようで、JDK ログを使用しているため、プロパティ ファイルでログ レベルを設定するだけです。

于 2010-12-10T00:19:16.263 に答える
0

ハイバネートが非常に冗長になるのを止める最も簡単な方法はlog4j-over-slf4j.jar、クラスパスに追加することです。これは、休止状態がログに log4j を使用するためです。その jar を追加すると、log4j を通過するすべてのログ インテントが slf4j にリダイレクトされます。

于 2012-11-20T15:40:08.813 に答える