【发布时间】:2011-01-19 02:34:37
【问题描述】:
我也在尝试阻止应用日志消息发送到 STDOUT。
我有以下日志配置:
log4j = {
appenders {
rollingFile name: 'applog', file: "${System.properties.getProperty('catalina.base')}${File.separator}logs${File.separator}application.log".toString(), layout: pattern(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p%c{1} - %m%n'), maxFileSize: '1MB'
file name: 'stacktrace', file: "${System.properties.getProperty('catalina.base')}${File.separator}logs${File.separator}stacktrace.out".toString(), layout: pattern(conversionPattern: '%c{2} %m%n')
console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n')
}
error stacktrace: "StackTrace"
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',
'net.sf.ehcache.hibernate'
warn 'org.mortbay.log'
info 'grails.app'
root {
info applog
error 'stdout'
additivity=false
}
}
在我的应用程序文件上输出的日志很好。问题是 catalina.out 复制了其中的每一行。我不希望 catalina.out 增长太多。我只想要 catalina.out 中的 WARN 及以上版本。我该怎么做?
更新:我更新了上述问题。以前我表示这些消息在 catalina 中记录了两次。我想出了如何解决这个问题。但是,它仍然会记录一次我不想要的消息。我只想要 WARN 消息。
更新 2:我想我知道这个问题,但我不知道如何解决它。 catalina.out 日志文件不是通过上面的配置来配置的。在默认的 catalina.sh 启动脚本中,所有标准输出都写入 catalina.out 文件。因此,正在写入appLog 的日志消息也正在写入stdout。所以真正的问题是,基于上面的配置文件,为什么我的appLog的内容也输出到stdout。
【问题讨论】:
标签: linux tomcat grails groovy log4j