Red Hat Training

A Red Hat training course is available for Red Hat JBoss Web Server

4.5. ロギング

Hibernate はさまざまなシステムイベントをログに記録するため、 SLF4J (Simple Logging Facade for Java) を使用します。 SLF4J は、 選択したバインディングに応じてログ出力を複数のロギングフレームワーク (NOP、 Simple、 log4j バージョン 1.2、 JDK 1.4 ロギング、 JCL、 logback) に転送することができます。 ロギングを設定するには、 希望のバインディングの jar ファイル (Log4J の場合は slf4j-log4j12.jar) と、 クラスパス上に slf4j-api.jar が必要となります。 詳細は SLF4J の ドキュメント を参照してください。 Log4j を使用するには、 クラスパスに log4j.properties を置く必要もあります。 サンプルのプロパティファイルは、 Hibernate の src/ ディレクトリにあります。
Hibernate のログメッセージを理解できるようにしてください。 Hibernate のログはできる限り詳細で、 読みやすいようになっています。 トラブルシューティングでは必須となります。 重要なログのカテゴリは次の通りです。

表4.9 Hibernate ログカテゴリ

カテゴリ機能
org.hibernate.SQL実行したすべての SQL(DDL)ステートメントをロギングします。
org.hibernate.typeすべての JDBC パラメータをロギングします。
org.hibernate.tool. hbm2ddl実行したすべての SQL(DDL)ステートメントをロギングします。
org.hibernate.prettysession に関連するすべてのエンティティ(最大20)のフラッシュ時間をロギングします。
org.hibernate.cacheすべてのニ次キャッシュの動作をロギングします。
org.hibernate. transactionトランザクションに関連する動作をロギングします。
org.hibernate.jdbcJDBC リソース取得をロギングします。
org.hibernate.hql. ast.ASTHQL と SQL の AST のクエリパースをロギングします。
org.hibernate.secureすべての JAAS 分析をロギングします。
org.hibernateすべてをロギングします。 情報量は多くなりますが、 トラブルシューティングには便利です。
Hibernate でアプリケーションの開発時には、ほとんどの場合、カテゴリ org.hibernate.SQLdebug を有効にします。 debug の代わりにプロパティ hibernate.show_sql を有効にすることもできます。