私はアプリログメッセージがSTDOUTにも流出しないようにしようとしています。Log4Jのログメッセージがapp-logに記録され、stdoutがgrailsアプリケーションのため
私はロギングの以下の構成を持っている:私のアプリケーションファイルに出力している
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に2回記録されていることを示しました。私はそれを修正する方法を考え出した。しかし、それはまだ私がしたくないメッセージを一度記録します。私はWARNメッセージだけが必要です。
更新2:私は問題を知っていると思っていますが、解決方法はわかりません。 catalina.outログファイルは上記の設定では設定されていません。デフォルトのcatalina.sh起動スクリプトでは、すべての標準出力がcatalina.outファイルに書き込まれます。したがって、appLog
に書き込まれているログメッセージもstdout
に書き込まれています。実際の問題は、上記の設定ファイルに基づいて、なぜ私のappLogの内容もstdout
に出力されていることです。私が思う
私はより多くの情報を入れて問題について – Tihom