从Grails2.0开始,GrailsMelody插件不再记录SQL调用

从Grails2.0开始,GrailsMelody插件不再记录SQL调用,grails,grails-2.0,Grails,Grails 2.0,自从我将两个grails项目升级到Grails2.0以来,grails melody就停止记录sql调用。我尝试了不同版本的grails melody插件,但在所有版本中都会出现相同的错误(即使是迁移到grails 2.0之前工作的版本) 我在谷歌上似乎找不到任何有用的东西。如果我在grails melody插件上添加跟踪调试 log4j = { trace 'net.bull.javamelody' } 我在日志中看到: DEBUG bull.javamelody - dataso

自从我将两个grails项目升级到Grails2.0以来,grails melody就停止记录sql调用。我尝试了不同版本的grails melody插件,但在所有版本中都会出现相同的错误(即使是迁移到grails 2.0之前工作的版本)

我在谷歌上似乎找不到任何有用的东西。如果我在grails melody插件上添加跟踪调试

log4j = {
    trace 'net.bull.javamelody'
}
我在日志中看到:

DEBUG bull.javamelody  - datasources found in JNDI: []
这个问题真的快把我逼疯了。。这里有人遇到过这个问题吗?如果是的话,你找到解决办法了吗

更新: Grails melody甚至不适用于新创建的项目。我刚刚创建了一个新的grails项目(Grails2.0.0),其中包含一个域类和相应的控制器和视图。然后安装grails melody插件。插入了一些数据。当我查看监控控制台时,没有记录sql数据


部分解决方法是在
DataSource.groovy
的hibernate部分设置
jdbc.factory\u类。例如:

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查询。直接使用数据源的查询仍然不会被记录下来。

我补充了ataylor的答案,因为它让我开始解决问题。但我还不能发表评论,所以我将在这里发布

在JavaMelody文档的JDBC部分中,它概述了如何使用自己的驱动程序facade直接使用hibernate实现这一点。我认为这也会起作用,除非我一生都无法找出要放入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>
net.bull.javamelody.jdbc驱动程序
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/myschema
我的用户
我的密码

不错!我会试试看。谢谢1下,还有一个:)需要为纯SQL调用找到一个解决方案(为了性能起见,有相当数量的纯SQL调用)这满足了我的需要,因为我主要希望对我的SQL调用有一定的可见性,目前所有这些调用都在进行Hibernate。