如何更改Grails中提供给服务类的内置日志对象的日志记录类别?
我的意思是以下内容:
package com.company.service
class MyService {
def myServiceMethod(){
log.debug "At your service..." // <-- goes to category my.new.category
}
}
我可以手动创建一个Logger对象然后显式选择类别 - 就像你在java中编写类一样(例如private static Logger log = Logger.getLogger('my.new.category')
之类的东西),但是想看看是否有是一种更改内置grails日志对象类别的方法。
为什么呢?因为我们所有的服务类都在一个包中,但我们希望能够为每个服务类独立控制日志级别。
答案 0 :(得分:2)
即使您的所有服务都在同一个软件包中,您仍然可以为每个服务设置单独的日志记录级别。
例如:
// Config.groovy
log4j.main = {
...
debug 'grails.app.services.my.whatever.package.MyService'
warn 'grials.app.services.my.whatever.package.MyOtherService'
info 'grails.app.services.my.whatever.package.MyFinalService'
}
如果确实需要,您甚至可以在应用程序运行时更改它们。以下是一个非常简单的示例:
Logger.rootLogger.getLogger('grails.app.services.my.whatever.MyOtherService').level = org.apache.log4j.Level.toLevel('DEBUG')