2012-03-21 72 views
6

自從我將兩個grails項目升級到grails 2.0以來,grails-melody停止了對sql調用的記錄。我已經嘗試過不同版本的grails-melody插件,但是我在所有版本中都得到相同的錯誤(甚至是在遷移到grails 2.0之前的版本)。從Grails 2.0開始,Grails Melody插件不再記錄SQL調用

我似乎無法找到任何有用的谷歌搜索。如果我對Grails的旋律插件

log4j = { 
    trace 'net.bull.javamelody' 
} 

添加跟蹤調試我看到這個在日誌中:

DEBUG bull.javamelody - datasources found in JNDI: [] 

這個問題真的讓我瘋了..有沒有人在這裏遇到這個問題?如果是的話,你找到了解決方案?

更新: Grails旋律甚至不能在新創建的項目中工作。我剛剛創建了一個帶有一個域類和相應的控制器和視圖的新Grails項目(grails 2.0.0)。然後安裝grails-melody插件。插入一些數據。當我看着監視控制檯,沒有SQL數據正在記錄..

Graph Tables

回答

4

的部分解決方法是設置在jdbc.factory_classDataSource.groovy休眠部分。例如:

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = false 
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' 
    jdbc.factory_class = 'net.bull.javamelody.HibernateBatcherFactory' 
} 

這將記錄所有經過hibernate的SQL查詢。直接使用數據源的查詢仍然不會被記錄。

+0

不錯!將嘗試一下。謝謝!! – 2012-10-30 11:28:40

+0

可以確認它適用於GORM。謝謝!! – 2012-11-20 20:22:15

+0

1下,一個去:)需要找到一個純SQL調用的解決方案(具有相當數量的性能) – 2012-11-20 20:24:40

0

我提高了阿泰勒的回答,因爲它讓我開始解決這個問題。但我還不能評論,所以我會在這裏發佈。

在JavaMelody文檔的JDBC部分:JDBC中,它概述瞭如何使用他們自己的驅動外觀進行直接休眠。我會認爲這也會起作用,除非我不能在我的生活中找出放入DataSource.groovy來使其工作的參數。

參考:

<property name="hibernate.connection.driver_class">net.bull.javamelody.JdbcDriver</property> 
    <property name="hibernate.connection.driver">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myschema</property> 
    <property name="hibernate.connection.username">myuser</property> 
    <property name="hibernate.connection.password">mypassword</property>