更改grails服务类的日志类别

时间:2014-10-27 21:27:20

标签: grails logging

如何更改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日志对象类别的方法。

为什么呢?因为我们所有的服务类都在一个包中,但我们希望能够为每个服务类独立控制日志级别。

1 个答案:

答案 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')