Hibernate Tips is a new series of posts in which I describe a quick and easy solution for common Hibernate questions. If you have a question you like me to answer, please leave a comment below.
How do you configure Hibernate so that it writes the executed SQL statements and used bind parameters to the log file?
Hibernate uses 2 different log categories and log levels to log the executed SQL statements and their bind parameters:
- The SQL statements are written as DEBUG messages to the category org.hibernate.SQL.
- The bind parameters are logged to the org.hibernate.type.descriptor.sql category with log level TRACE.
You can activate and deactivate them independently of each other in your log configuration.
The following code snippet shows an example of a log4j configuration which activates both of them.
Hibernate then writes log messages like the following one to your log file.
You can find more information about Hibernates logging features and my recommendation for a development and a production configuration (yes, you should use 2 different ones!) in Hibernate Logging Guide – Use the right config for development and production.
Hibernate Tips Book
Get more recipes like this one in my new book Hibernate Tips: More than 70 solutions to common Hibernate problems.
It gives you more than 70 ready-to-use recipes for topics like basic and advanced mappings, logging, Java 8 support, caching, and statically and dynamically defined queries.
Get it now!