6

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

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

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

我在日志中看到了这一点:

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

这个问题真的让我发疯..这里有人遇到过这个问题吗?如果是这样,您找到解决方案了吗?

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

图形 表

4

2 回答 2

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'
}

这将记录所有通过休眠的 SQL 查询。直接使用数据源的查询仍然不会被记录。

于 2012-10-22T18:10:26.760 回答
0

我提高了ataylor的回答,因为它让我开始解决这个问题。但我还不能发表评论,所以我会在这里发布。

在 JavaMelody 文档的 JDBC 部分:JDBC中,它概述了如何使用自己的 Driver 外观使用直接休眠来执行此操作。我认为这也可以,除非我一生都无法弄清楚要放入 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>
于 2012-11-20T21:42:17.300 回答