SessionFactory sf = new Configuration()
.setProperty("hibernate.show_sql", "true")
// ...
.buildSessionFactory();
Более расширенный способ, позволяющий боле точно задать что будет логироваться можно задать в конфигурационном файле log4j. (hibernate логирует сообщения через библиотеку slf4j)
| Категория | функциональность |
|---|---|
org.hibernate.SQL | Логирует все SQL DML выражения как только они выполнены |
org.hibernate.type | Логирует все JDBC параметры |
org.hibernate.tool.hbm2ddl | Логирует все SQL DDL выражения как только они выполнены |
org.hibernate.pretty | Логирует состояние всех entities (максимально 20) ассоциированых с сессией во время flush |
org.hibernate.cache | Логирует всю активность связанную с кэшом второго уровня |
org.hibernate.transaction | Логирует всю активность связанную с транзакциями |
org.hibernate.jdbc | Логирует все получения JDBC ресурсов |
org.hibernate.hql.ast.AST | Логирует HQL и SQL ASTs вовремя парсинга запросов |
org.hibernate.secure | Логирует все запросы авторизации JAAS |
org.hibernate | Логирует всё. Это большое количество информации , но полезно для нахождения багов |
Например:
<logger name="org.hibernate.SQL" additivity="false"> <level value="DEBUG" /> <appender-ref ref="console" /> </logger> <logger name="org.hibernate.type" additivity="false"> <level value="TRACE" /> <appender-ref ref="console" /> </logger>
Вы можете также загрузить пример log4j файла, в котором включено логирование SQL и параметров.