grails - 调试语句未显示src/groovy类

标签 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

最佳答案

这是一个配置,它将在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 }
}

关于grails - 调试语句未显示src/groovy类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38800002/

相关文章:

java - 如何将当前客户端目录添加到日志文件名中?

java - 使用 Spring 配置文件设置系统属性

第三方应用程序(如 apache zookeeper)中的 Log4j 漏洞

jquery - 将多个表单中的字段提交到一个 Grails Controller

grails - 在Grails选择标签中添加HTML “required”

java - 当 log4j 中文件大小同时超过最大限制时,如何每天滚动更新我的日志文件

log4j - 在 log4j 中使用 RollingFileAppender、DailyRollingFileAppender、ConsoleAppender。不工作

Grails hasOne 关联

grails - 如何从我的结帐目录中构建……

grails - java后端和grails前端