加法性、カテゴリロギングレベル、およびアペンダーしきい値の関係を理解するのに問題があります。
これがシナリオです(私のlog4j.propertiesファイル):
log4j.category.GeneralPurpose.classTypes=INFO, webAppLogger
log4j.additivity.GeneralPurpose.classTypes=true
log4j.category.GeneralPurpose=ERROR, defaultLogger
log4j.additivity.GeneralPurpose=false
log4j.appender.webAppLogger=org.apache.log4j.RollingFileAppender
log4j.appender.webAppLogger.File=webapps/someWebApp/logs/webApp.log
log4j.appender.webAppLogger.MaxFileSize=3000KB
log4j.appender.webAppLogger.MaxBackupIndex=10
log4j.appender.webAppLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.webAppLogger.layout.ConversionPattern=%d [%t] (%F:%L) %-5p - %m%n
log4j.appender.webAppLogger.Encoding=UTF-8
log4j.appender.defaultLogger=org.apache.log4j.RollingFileAppender
log4j.appender.defaultLogger.File=logs/server.log
log4j.appender.defaultLogger.MaxFileSize=3000KB
log4j.appender.defaultLogger.MaxBackupIndex=10
log4j.appender.defaultLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.defaultLogger.layout.ConversionPattern=%d [%t] (%F:%L) %-5p - %m%n
log4j.appender.defaultLogger.Encoding=UTF-8
インサイト:カテゴリGeneralPurpose.classTypesはINFOカテゴリGeneralPurpose.classTypesには加法性がありますTRUEカテゴリGeneralPurposeはERRORカテゴリGeneralPurposeには加法性がありますFALSE
現在の構成では、親ロガー(カテゴリ)がエラーレベルのログに設定されているため、カテゴリGeneralPurpose.classTypes。*に送信されたINFOメッセージはwebAppLoggerにのみログに記録されると想定していました。ただし、これは当てはまりません。メッセージは2回ログに記録されます(各ログファイルに1つ)。イベントが加法性の一部として送信される場合、親カテゴリのERRORログレベルは考慮されていないようです。
- 私の観察は正しいですか、それとも何かが欠けていますか?
- server.logでエラーレベルのログのみを取得するには、構成をどのように変更する必要がありますか?