3.5. ロギング

3.5. ロギング

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 プロパティを有効にする方法があります。