sql logger在生产中卡住'on'

时间:2012-03-30 13:13:32

标签: tomcat grails

我对grails非常熟悉,但是我的sql日志记录似乎总是在生产中(tomcat6)。它在开发中按预期工作,我可以打开和关闭它。我已经禁用了我的datasource.groovy中的所有日志记录......

dataSource {
    ...
    driverClassName = 'com.mysql.jdbc.Driver'
    dialect = org.hibernate.dialect.MySQL5InnoDBDialect
    logSql = false  //<-- still logs sql in production
    properties {
        ...
    }
}
environments {
     production {
            dataSource {
                logSql = false //<-- still logs sql in production
            }
     }
 }
我的config.groovy中的

和log4j非常简单......

log4j = {

    error  'org.codehaus.groovy.grails.web.servlet',  //  controllers
           'org.codehaus.groovy.grails.web.pages', //  GSP
           'org.codehaus.groovy.grails.web.sitemesh', //  layouts
           'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping
           'org.codehaus.groovy.grails.web.mapping', // URL mapping
           'org.codehaus.groovy.grails.commons', // core / classloading
           'org.codehaus.groovy.grails.plugins', // plugins
           'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration
           'org.springframework',
           'org.hibernate',
           'net.sf.ehcache.hibernate'

    warn   'org.mortbay.log'
}

最后,我正在使用'war'命令构建我的项目。有谁知道这可能会在哪里设置?

3 个答案:

答案 0 :(得分:2)

当我第一次参加制作大战时,我似乎记得遇到过这个问题。我从数据源部分删除了logSql = false,并根据需要在每个环境中使用它。事实上我从来没有把logSql = false - 我要么完全删除它,要么将其注释掉。我需要时只有logSql = true。

不确定这是否是根本原因或其他原因,但它修复了它并且我从未遇到过问题。

答案 1 :(得分:0)

最新的docs将其指定为'logSql',但我总是使用'​​loggingSql',因为我记得。

同时检查http://grails.1312388.n4.nabble.com/Hibernate-Sql-Logging-in-Integration-tests-not-working-td3527685.html

答案 2 :(得分:0)

您是否外部化数据源属性?如果是,则该文件可能会覆盖loggingSql属性

我认为你应该使用'loggingSql'属性。我们在生产中使用它。它的工作正常(使用Grails 2.0版本)

dataSource {
    loggingSql=true
}
environments {
    development {
        dataSource {
            username = "test"
            password = "test"
            loggingSql=true
        }
    }

    production {
        dataSource {
             username = "prod"
            password = "prod"
            loggingSql=false
        }
    }
}