Grails服务日志记录未初始化

时间:2013-11-02 20:18:42

标签: grails

我可以让我的服务中的日志记录工作的唯一方法是将其添加到我的服务中:

class MyService {
def log = LogFactory.getLog(getClass())
...

我在Config.groovy中的log4j设置:

log4j = {

    PatternLayout patternLayout = new PatternLayout("%d [%t] %-5p %c %x - %m%n")


    debug   'grails.app.controllers',
            'grails.app.controller',
            'grails.app.domain',
            'grails.app.service',
            'grails.app.filters',
            'com.mycompany'
//            'org.springframework.security'
            'org.hibernate.SQL'

    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'

    appenders {
        appender new org.apache.log4j.ConsoleAppender(name: "console",
                threshold: org.apache.log4j.Level.DEBUG,
                layout: patternLayout
        )
    }
    root {
        error 'stdout'
        additivity = true
    }
}

我原本以为日志记录可以在服务中运行而无需在顶部添加def log ....

1 个答案:

答案 0 :(得分:3)

grails.app.service应为grails.app.services。这在版本2.0中已更改。

您可以通过添加

轻松找出工件中的记录器名称
println log.name

测试方法并调用它。