Hibernate は Apache commons-logging を使って、さまざまなイベントをログとして出力します。
commons-logging サービスは(クラスパスに log4j.jar を含めれば) Apache Log4j に、または(JDK1.4 かそれ以上で実行させれば) JDK1.4 logging に直接出力します。 Log4j は http://jakarta.apache.org からダウンロードできます。 Log4j を使うためには、クラスパスに log4j.properties ファイルを配置する必要があります。例のプロパティファイルは Hibernate と一緒に配布され、それは src/ ディレクトリにあります。
Hibernate のログメッセージに慣れることを強くおすすめします。 Hibernate のログは読みやすく、できる限り詳細になるように努力されています。これは必須のトラブルシューティングデバイスです。以下に重要なログのカテゴリを示します:
| カテゴリ | 機能 |
|---|---|
org.hibernate.SQL
|
実行したすべての SQL(DDL)ステートメントをロギングします。 |
org.hibernate.type
|
すべての JDBC パラメータをロギングします。 |
org.hibernate.tool.hbm2ddl
|
実行したすべての SQL(DDL)ステートメントをロギングします。 |
org.hibernate.pretty
|
session に関連するすべてのエンティティ(最大20)のフラッシュ時間をロギングします。 |
org.hibernate.cache
|
すべてのニ次キャッシュの動作をロギングします。 |
org.hibernate.transaction
|
トランザクションに関連する動作をロギングします。 |
org.hibernate.jdbc
|
JDBC リソース取得をロギングします。 |
org.hibernate.hql.ast.AST
|
HQL と SQL の AST のクエリパースをロギングします。 |
org.hibernate.secure
|
すべての JAAS 分析をロギングします。 |
org.hibernate
|
すべてをロギングします。(情報が大量になりますが、トラブルシューティングには便利です) |
表 3.9. Hibernate ログカテゴリ
Hibernate でアプリケーションを作成するときは、 org.hibernate.SQL カテゴリの debug を常に有効にしておいたほうが良いでしょう。代替方法として、 hibernate.show_sql プロパティを有効にする方法があります。