Hibernate utilizes Simple Logging Facade for Java (SLF4J) in order to log various system events. SLF4J can direct your logging output to several logging frameworks (NOP, Simple,
log4j version 1.2, JDK 1.4 logging, JCL or logback) depending on your chosen binding. In order to setup logging properly you
will need slf4j-api.jar
in your classpath together with the jar file for your preferred binding - slf4j-log4j12.jar
in the case of Log4J. See the SLF4J documentation for more detail. To use Log4j you will also need to place a log4j.properties
file in your classpath, an example properties file is distributed with Hibernate in the src/
directory.
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.