2012-09-18 14 views
0

我試圖讓Hibernate的記錄參數值。 我正在使用Netbeans並將所產生的WAR文件部署到Ubuntu盒子上的Glassfish上。 我正在使用Java實用程序日誌記錄(而不是log4j等),因爲我以前沒有使用它,並希望看到它如何比較。JUL logging.properties和Hibernate

我已經設置了hibernate.show_sql屬性爲true persistence.xml中,是的,我可以看到SQL出來的日誌(INFO等級)。但是,要查看SQL中使用的參數值,我相信我需要將Hibernate的日誌級別更改爲TRACE(或至少DEBUG),而我的應用似乎設置爲INFO級別。

我明白logging.properties是做它的地方,但該文檔似乎都指向配置的JRE,這將是全系統。

我的問題是...我可以把logging.properties某處在我的應用代替,所以不同的應用程序在同一個應用程序服務器可以有不同的日誌記錄配置?

而且,因爲(從我讀)Hibernate使用常用的日誌記錄,將我所有得到這個信息,因爲我使用的七月,而不是普通的日誌記錄?

感謝

回答

2

你可以把屬性文件在類路徑中您的應用程序的根。對於Web應用程序的地方,一個是WEB-INF/classes中

如果啓用的跟蹤級別,你將能夠看到跟蹤之類的語句,這些

insert into table (name, id) values (?, ?) 
......................... 

binding '1' to parameter: 2 

然而,這是不是可能是你想要的。如果你想讓sql本身顯示包含的綁定參數,那麼你可以使用P6Spy庫。設置P6Spy非常簡單。你可以看到如何設置它here

一旦你設置它,你可以看到SQL日誌中

insert into grouptable (name, id) values ('Name', 1) 
+0

謝謝賽倫德拉,我找到了工作。只需要找到正確的logging.properties文件。我捆綁的Netbeans/Glassfish實例文件位於C:\ Users \ richard \ .netbeans \ 7.1.1 \ config \ GF3 \ domain1 \ config中。我設置了org.hibernate.level = FINEST(似乎對應於TRACE),現在我得到了所有的hibernate trace信息。我現在要嘗試P6Spy,這聽起來非常寶貴。謝謝你的提示 – Richard