2011-08-02 116 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驅動程序。