3.5. Tracer

Hibernate trace divers évènements en utilisant Apache commons-logging.

Le service commons-logging délèguera directement à Apache Log4j (si vous incluez log4j.jar dans votre classpath) ou le système de trace du JDK 1.4 (si vous tournez sous le JDK 1.4 et supérieur). Vous pouvez télécharger Log4j à partir de http://jakarta.apache.org. Pour utiliser Log4j, vous devrez placer dans votre classpath un fichier log4j.properties. Un exemple de fichier est distribué avec Hibernate dans le répertoire src/.

Nous vous recommandons fortement de vous familiariser avec les messages des traces d'Hibernate. Beaucoup de soins a été apporté pour donner le plus de détails possible sans les rendre illisibles. C'est un outil essentiel en cas de soucis. Les catégories de trace les plus intéressantes sont les suivantes :

Tableau 3.9. Catégories de trace d'Hibernate

Catégorie Fonction
org.hibernate.SQL Trace toutes les requêts SQL de type DML (gestion des données) qui sont exécutées
org.hibernate.type Trace tous les paramètres JDBC
org.hibernate.tool.hbm2ddl Trace toutes les requêts SQL de type DDL (gestion de la structure de la base) qui sont exécutées
org.hibernate.pretty Trace l'état de toutes les entités (20 entités maximum) qui sont associées avec la session hibernate au moment du flush
org.hibernate.cache Trace toute l'activité du cache de second niveau
org.hibernate.transaction Trace toute l'activité relative aux transactions
org.hibernate.jdbc Trace toute acquisition de ressource JDBC
org.hibernate.hql.ast.AST Trace l'arbre syntaxique des requêtes HQL et SQL durant l'analyse syntaxique des requêtes
org.hibernate.secure Trace toutes les demandes d'autorisation JAAS
org.hibernate Trace tout (beaucoupe d'informations, mais très utile pour résoudre les problèmes).

Lorsque vous développez des applications avec Hibernate, vous devriez quasiment toujours travailler avec le niveau debug activé pour la catégorie org.hibernate.SQL, ou sinon avec la propriété hibernate.show_sql activée.