2012-03-30 9 views
4

私はSQLログをgrailsについていますが、SQLログは常に生産中(tomcat6)にあるようです。私はそれをオンとオフに切り替えることができます開発では期待どおりに動作します。私は私のdatasource.groovyにログインするすべて無効にした...SQLロガーが生産現場で立ち往生しました

私config.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 
      } 
    } 
} 

と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'コマンド。誰かがこれがどこに設定される可能性があるか知っていますか?

答えて

2

をご確認ください。私は、データソースセクションからlogSql = falseを削除し、必要に応じて各環境でそれを持っていました。実際には決してlogSql = falseを置くことはありません - 私はそれを完全に削除するかコメントアウトします。私は必要なときだけlogSql = trueを持っています。

それが根本的な原因であったかどうかはわかりませんが、それを修正して以来、問題はありませんでした。

0

最新のdocsは「logSql」と指定していますが、私は覚えている限り、常に「loggingSql」を使用しています。

また、私は私が最初の生産戦争でライブを行ったときに、この問題を抱えて覚えているようだ、http://grails.1312388.n4.nabble.com/Hibernate-Sql-Logging-in-Integration-tests-not-working-td3527685.html

+0

私はよ明日の夜に私たちの次のプロダクションビルドを試してみてください:) –

+0

いいえ運がまだありません(まだ巨大なサーバーログ –

+0

はそれほど助けとは言えませんでした)私は値を上書きする可能性のある外部化されたconfigs .org/doc/latest/guide/conf.html#configExternalized) – aldrin

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 
     } 
    } 
} 
関連する問題