2016/05/21 追記
@nobeansさんのご指摘通り、クラスに埋め込まれているlogオブジェクトにて、ログ出力できます。
詳細はコメントをご覧ください。
いつもの感じで
なんか便利なアノテーションがあるのかなと思って探していたのですが、見つからず。
Slf4jでフツーに書くみたいです。
TestController.groovy
package testgrails1
import org.slf4j.LoggerFactory
class TestController {
private final static def logger = LoggerFactory.getLogger(TestController.class);
def index() {
logger.info("hello")
render(view:'index')
}
}
設定は、logback.groovyです。
grails-app/conf/logback.groovy
import grails.util.BuildSettings
import grails.util.Environment
// See http://logback.qos.ch/manual/groovy.html for details on configuration
appender('STDOUT', ConsoleAppender) {
encoder(PatternLayoutEncoder) {
pattern = "[%level] [%logger] - %msg%n"
}
}
//root(INFO, ['STDOUT'])
// testgrails1パッケージは、INFOレベルで出力
logger("testgrails1", INFO, ["STDOUT"])
if(Environment.current == Environment.DEVELOPMENT) {
def targetDir = BuildSettings.TARGET_DIR
if(targetDir) {
appender("FULL_STACKTRACE", FileAppender) {
file = "${targetDir}/stacktrace.log"
append = true
encoder(PatternLayoutEncoder) {
pattern = "%level %logger - %msg%n"
}
}
logger("StackTrace", ERROR, ['FULL_STACKTRACE'], false )
}
}