我正在使用Grails应用程序。在我的Config.groovy中,我尝试配置log4j,以便我的应用程序代码以DEBUG级别登录,而所有groovy / grails / spring / hibernate代码(几乎所有其他代码)都以ERROR级别登录
我现在只想登录到控制台(stdout)。
经过众多博客文章后发表文章如此答案,我似乎仍然无法使其发挥作用。这是我目前的设置:
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
}
以上配置生成所有框架的DEBUG日志&图书馆也是。
当我将根封闭更改为{ error 'stdout', 'appStdOut' }
时,我的DEBUG日志不会被打印,只会打印出错误日志。
当我再次将根关闭更改为{ debug 'stdout', 'appStdOut' }
时,我会看到所有框架的DEBUG日志&库。
这真让我疯了!如何告诉它在DEBUG& amp;以上为我的包裹和错误&对于其他一切,对stdout?
答案 0 :(得分:1)
这应该这样做
log4j = {
appenders {
def logPattern = '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{2} - %m%n'
// define a console appender named 'stdout' that uses the above patter
console name: 'stdout', layout: pattern(conversionPattern: logPattern)
}
root {
// the root logger - from which all other loggers inherit - uses the 'stdout' appender
// and logs at the error level
error 'stdout'
}
// packages that begin with 'mondrack' and Grails artefacts log at the debug level
debug 'mondrack', 'grails.app'
}