Grails Melody插件不再记录Grails 2.0中的SQL调用

时间:2012-03-21 17:31:11

标签: grails grails-2.0

自从我将两个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数据..

Graph Tables

2 个答案:

答案 0 :(得分:4)

部分解决方法是在jdbc.factory_class的休眠部分设置DataSource.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查询。直接使用数据源的查询仍然不会被记录。

答案 1 :(得分:0)

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

在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>