2011-08-02 72 views
3

我正在开发的示例应用程序不断将所有Hibernate查询写入Tomcat控制台。我的意思是如果你在Windows上启动Tomcat,你将会有一个小程序开启窗口。 Hibernate一直在编写所有的数据访问代码,比如'Hibernate:select table10_.col1 as COL10_,table10_.col2 as COL20 _,...“我想知道是否有任何配置可以让Hibernate将这些查询写入某种日志文件?可能到本地主机日志下的tomcat /日志?如何配置Hibernate日志记录?

+0

我发誓这是第三次,我看到这个问题在这么多天问我们可以移动它,与相应的答案(s)常见问题解答? – Olaf

回答

3

这不是日志记录,它是Hibernate的“show_sql”。找一个名为“hibernate.show_sql”属性设置为“true”。将其更改为false或只是删除它完全是为了摆脱那些,然后在Hibernate中查看the Configuration chapter参考如何在Hibernate中设置SQL日志记录。

+0

不是show_sql旧的配置设置吗?我相信它主要用于在项目中,最初是用Hibernate 3.3之前的版本编写的。 – Olaf

+0

我当然不会使用show_sql。不幸的是,它仍然在参考指南中的[教程](http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/tutorial.html#tutorial-firstapp-configuration)中使用,虽然。 –

+0

@Ryan ..谢谢你的回复..我在sessionfactory的bean定义中将show_sql设置为false,并且它对我有效..仍然必须处理sql日志记录。再次感谢 – RKodakandla

1

@ Ryan-Stewart是正确的,但它可以是一个Pass Java JDBC驱动程序,可以记录SQL和/或针对其他JDBC驱动程序的JDBC calls

Hibernate的日志记录已记录类似于: '?'

select bs0_.A_REF as A2_7_0_ from B bs0_ where bs0_.other = 0 and bs0_.A_REF=? 
TRACE 2011-08- 03 00:30:45,317 binding '123' to parameter: 1 

注意,而不是真正的参数值

有了通行证通过JDBC驱动程序已登录类似:

select bs0_.A_REF as A2_7_0_ from B bs0_ where bs0_.other = 0 and bs0_.A_REF=123 

所有绑定参数都解决

log4jdbc就是其中的一个通过JDBC驱动程序。