我可以使日志在服务中工作的唯一方法是将其添加到服务中:
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...。
最佳答案
grails.app.service
应该是grails.app.services
。这在2.0版中已更改。
您可以通过添加轻松地在 Artifact 中找到记录器名称
println log.name
测试方法并调用它。
关于grails - Grails服务日志记录未初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19746423/