【发布时间】:2014-08-09 12:26:37
【问题描述】:
我正在开发一个 Grails 应用程序。在我的 Config.groovy 中,我尝试配置 log4j,以便我的应用程序的代码在 DEBUG 级别记录,而所有 groovy/grails/spring/hibernate 代码(几乎所有其他代码)都在 ERROR 级别记录。
我现在只想登录到控制台(标准输出)。
在浏览了许多博客文章和 SO 答案之后,我似乎仍然无法使其工作。这是我当前的设置:
log4j = {
appenders {
appender new ConsoleAppender(name: "appStdOut",
threshold: Level.toLevel("DEBUG"),
layout: new PatternLayout("..."))
appender new ConsoleAppender(name: "stdout",
threshold: Level.toLevel("ERROR"),
layout: new PatternLayout("..."))
}
root {
error 'stdout'
debug 'appStdOut'
}
error stdout: [
'org.codehaus.groovy.grails.web.servlet',
'org.codehaus.groovy.grails.web.pages',
'org.codehaus.groovy.grails.web.sitemesh',
'org.codehaus.groovy.grails.web.mapping.filter',
'org.codehaus.groovy.grails.web.mapping',
'org.codehaus.groovy.grails.commons',
'org.codehaus.groovy.grails.plugins',
'org.codehaus.groovy.grails.orm.hibernate',
'org.springframework',
'org.hibernate',
'net.sf.ehcache.hibernate'
]
debug appStdOut: [ 'mondrack' ] // This is the package name for my app
}
上述配置也会产生所有框架和库的调试日志。
当我将根闭包更改为
{ error 'stdout', 'appStdOut' }时,我的 DEBUG 日志不会打印,而只会打印 ERROR 日志。当我再次将根闭包更改为
{ debug 'stdout', 'appStdOut' }时,我看到了所有框架和库的调试日志。
这真的让我发疯了!!我如何告诉它在 DEBUG 及以上打印我的包,并在 ERROR 及以上打印其他所有内容,到标准输出?
【问题讨论】: