sql_show = true
hibernate中的这个属性打印正在运行的sql,但是我也希望看到begin transaction
和complete transaction
语句,这样我就可以跟踪事务持续时间并查看在哪个事务中运行的查询。
谷歌显示
log4j.logger.org.hibernate.SQL = DEBUG, defaultAppender
log4j.logger.org.hibernate.type = DEBUG, defaultAppender
log4j.logger.org.hibernate.transaction=DEBUG, defaultAppender
也应该向您显示事务级数据。但事实并非如此。
我进一步研究了hibernate代码,并找到了一个类名。
org.hibernate.ejb.TransactionImpl
这个类有开始和完成方法,但是这个方法不记录任何东西。
有什么建议吗?如何在hibernate中查看事务级信息?
我正在使用hibernate 2.2
发布于 2015-06-02 07:06:27
用于Hibernate 5
用于Hibernate 4
您需要为下列类设置日志阈值以进行调试:
- For SLF4J logging:
- For SLF4J logging:
最好为尽可能少的类激活调试级别,否则,日志大小将急剧增加。
发布于 2015-06-01 22:57:43
尝试设置hibernate generate_statistics属性
<prop key="hibernate.generate_statistics">true</prop>
并设定
log4j.logger.org.hibernate=DEBUG
然后您将看到所有hibernate日志,并且您将能够正确地选择hibernate类来登录log4j配置文件。
发布于 2019-10-29 23:24:04
如果您还希望看到新创建的事务的事务隔离级别:
log4j.logger.org.springframework.transaction.support.AbstractPlatformTransactionManager=debug log4j.logger.org.springframework.orm.hibernate5.HibernateTransactionManager=debug log4j.logger.org.springframework.orm.jpa.JpaTransactionManager=debug log4j.logger.org.springframework.jdbc.datasource.DataSourceTransactionManager=debug
https://stackoverflow.com/questions/30576385
复制相似问题