我對Grails的1.2我log4j的DSL配置如下:爲什麼Grails(在Tomcat中)記錄到catalina.out和我的自定義文件appender?
log4j = {
appenders {
console name: 'stdout', layout: pattern(conversionPattern: conversionPattern)
environments {
production {
// ... some code to determine file path ...
rollingFile name: 'file', file: "${logDirectory}/${appName}.log", layout: pattern(conversionPattern: conversionPattern)
rollingFile name: 'StackTrace', file: "${logDirectory}/${appName}-stacktrace.log"
}
}
environments {
development { root { warn 'stdout' } }
test { root { warn 'stdout' } }
production { root { error 'file' } }
}
// ... package-specific logging configurations ...
}
當我部署爲戰爭到Tomcat,我的日誌被寫入到兩個catalina.out中和生產定義我的「文件」記錄。
我已經試過:
- 添加
additivity = false
到root {}
定義production {}
,不工作(我不會真的指望它,因爲它顯然是設置加根記錄器本身?)。 - 在
appenders {}
閉包中的development {}
和test {}
塊內定義了「標準輸出」控制檯appender,但這也不起作用。
也許這是我的Tomcat配置問題,而不是我的log4j DSL?我最近找到一個類似問題的人是this mailing-list thread,對此沒有(簡單)解決方案。
如何防止將日誌寫入生產中的catalina.out?