2013-11-02 27 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