2013-11-02 28 views
0

我可以记录我的服务工作的唯一办法是把它添加到我的服务:在Config.groovy中Grails的服务日志记录不初始化

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

我的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日志...。

回答

3

grails.app.service应该是grails.app.services。这在2.0版本中发生了变化。

您可以轻松地通过添加

println log.name 

的测试方法,把它找出一个神器记录器名称。

+1

是的,复数服务固定一切。 – spock99