Grails 2.0为自己的类设置了日志记录

时间:2012-02-15 18:16:25

标签: java grails groovy log4j

如何将log4j配置仅设置为我自己的类 - 域,控制器等的日志级别DEBUG?我不想从grails类中获取信息(关于获取资源等),我只想要自己的调试跟踪..

我尝试了很多组合,似乎都没有工作,即

debug 'grails.app.controller.test.MainController' - 无效

2 个答案:

答案 0 :(得分:7)

在log4j闭包中尝试此配置代码段(在Config.groovy中):

all additivity: false, console: [
  'grails.app.controllers.your.package',
  'grails.app.domain.your.package',
  'grails.app.services.your.package',
  'grails.app.taglib.your.package',
  'grails.app.conf.your.package',
  'grails.app.filters.your.package'
]

答案 1 :(得分:1)

您需要将log4j信息添加到Config.groovy中。以下是我们其中一个项目的片段

appenders {
    //console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
    console name:'stdout', layout:pattern(conversionPattern: '%d %p %t [%c] - <%m>%n')
    rollingFile  name:'file', file:'igive.log', maxFileSize:'2000KB', maxBackupIndex:'5',append:'true',layout:pattern(conversionPattern: '%d{[EEE, dd-MMM-yyyy @ HH:mm:ss.SSS]} [%t] %-5p %c %x - %m%n')

}

root   {
    info  'file', 'stdout'
    //debug  'file', 'stdout'
    additivity = true
}
//error file: "StackTrace"
//StackTrace="error,file"

warn   'org.codehaus.groovy.grails',
        'org.springframework',
        'org.hibernate',
        'org.apache',
        'net.sf.ehcache.hibernate'

debug  'com.yourpackage'

最后一行是重要的一行。这允许在调试级别记录com.yourpackage(替换为您的包)。