调试语句没有显示src / groovy类

时间:2016-08-06 02:21:20

标签: grails log4j

我的config.groovy

中有以下内容
// default for all environments
log4j = { root ->
    appenders {
        rollingFile name:'stacktrace', file:"${logDirectory}/app_stack.log".toString(), maxFileSize:'100KB'
    }

    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'
    debug  'com.my.code'
    root.level = org.apache.log4j.Level.INFO
}

我将调试语句打印到所有类的日志中,除了放在com.my.code包中的groovy文件我没有打印调试语句。只有info语句被打印到日志中。

以下是src / groovy

中某个groovy类的示例
@Log4j
class SomeTest {
  def someMethod() {
    log.info("This will print")
    log.debug("This will not print")
    println log.isDebugEnabled() //prints false
    print log.isInfoEnabled() //prints true
  }
}

问题

如何打开包com.my.code下的所有课程的调试?我正在使用grails 2.3.5。当我将root.level更改为org.apache.log4j.Level.DEBUG时,调试语句会显示,但也会为所有其他类打开DEBUG

2 个答案:

答案 0 :(得分:0)

在grails 2.x应用程序中,我使用了下一种格式(关于你的配置):

 debug rollingFile 'com.my.code'

此外,如果您需要为一堆软件包设置不同的日志级别:

debug rollingFile: ['com.example','com.otherpackage']

答案 1 :(得分:0)

这是一个配置,它会记录com.my.code级别的DEBUG个包中的所有代码,以及ERROR级别的所有其他包。

日志将发送到控制台和名为appLog.txt的文件。

log4j = {
    appenders {
        def logPattern = '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{2} - %m%n'
        console name: 'consoleAppender', layout: pattern(conversionPattern: logPattern)

        file name: "fileAppender", file: "appLog.txt"
    }

    root {
        // define the root logger's level and appenders, these will be inherited by all other loggers
        error 'consoleAppender', 'fileAppender'
    }

    def appNamespaces = [
            'com.my.code',
            'grails.app.conf.com.my.code',
            'grails.app.filters.com.my.code',
            'grails.app.taglib.com.my.code',
            'grails.app.services.com.my.code',
            'grails.app.controllers.com.my.code',
            'grails.app.domain.com.my.code'
    ]

    appNamespaces.each { debug it }
}