ロギング
ドメインクラスを操作したときにどんなSQLが実行されているのかログを見たいと思って調べてます。
あたりを参考に見てます。どうもGrailsでは、log4jを使っていて、grails-app/conf/Config.groovy というファイルにログに関する設定を記述すると、アプリケーションの起動時にlog4.propertiesを生成しているみたいです。Config.groovyの該当する部分を抜き出すとこんな感じです。
// log4j configuration log4j { appender.stdout = "org.apache.log4j.ConsoleAppender" appender.'stdout.layout'="org.apache.log4j.PatternLayout" appender.'stdout.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.stacktraceLog = "org.apache.log4j.FileAppender" appender.'stacktraceLog.layout'="org.apache.log4j.PatternLayout" appender.'stacktraceLog.layout.ConversionPattern'='[%r] %c{2} %m%n' appender.'stacktraceLog.File'="stacktrace.log" rootLogger="error,stdout" logger { grails="debug" StackTrace="error,stacktraceLog" org { codehaus.groovy.grails.web.servlet="error" // controllers codehaus.groovy.grails.web.pages="error" // GSP codehaus.groovy.grails.web.sitemesh="error" // layouts codehaus.groovy.grails."web.mapping.filter"="error" // URL mapping codehaus.groovy.grails."web.mapping"="error" // URL mapping codehaus.groovy.grails.commons="info" // core / classloading codehaus.groovy.grails.plugins="error" // plugins codehaus.groovy.grails.orm.hibernate="error" // hibernate integration springframework="off" hibernate="off" } } additivity.StackTrace=false }
Groovyで書いた設定ファイルを読みなれてない人間には、これをカスタマイズするのはなかなか敷居が高いです。。環境ごとに切り替えもできるみたいです。
なお、ドメインクラスやコントローラクラスでは、logというプロパティが自動で設定されるので、
log.info "テスト!"
見たいに書くとログ出力が使えます。これは便利。