Hibernate logs various events using Apache commons-logging.
The commons-logging service will direct output to either Apache Log4j (if you include log4j.jar
in your classpath) or JDK1.4 logging (if running under JDK1.4 or above). You may download Log4j from https://jakarta.apache.org
. To use Log4j you will need to place a log4j.properties
file in your classpath, an example properties file is distributed with Hibernate in the src/
directory.
We strongly recommend that you familiarize yourself with Hibernate's log messages. A lot of work has been put into making the Hibernate log as detailed as possible, without making it unreadable. It is an essential troubleshooting device. The most interesting log categories are the following:
Category
|
Function
|
org.hibernate.SQL
|
Log all SQL DML statements as they are executed
|
org.hibernate.type
|
Log all JDBC parameters
|
org.hibernate.tool.hbm2ddl
|
Log all SQL DDL statements as they are executed
|
org.hibernate.pretty
|
Log the state of all entities (max 20 entities) associated with the session at flush time
|
org.hibernate.cache
|
Log all second-level cache activity
|
org.hibernate.transaction
|
Log transaction related activity
|
org.hibernate.jdbc
|
Log all JDBC resource acquisition
|
org.hibernate.hql.ast.AST
|
Log HQL and SQL ASTs during query parsing
|
org.hibernate.secure
|
Log all JAAS authorization requests
|
org.hibernate
|
Log everything (a lot of information, but very useful for troubleshooting)
|
Table 3.9. Hibernate Log Categories
When developing applications with Hibernate, you should almost always work with debug
enabled for the category org.hibernate.SQL
, or, alternatively, the property hibernate.show_sql
enabled.