org.apache.log4j を使用して、アプリケーションにすでに広範なログを記録しています。ここで、これらのメッセージの一部を新しい XML ログ ファイルに移動する必要があります (元のログ ファイルには引き続き移動します)。
これは可能ですか?これらのメッセージを特定して、通常のログ ファイルに加えて特別な場所に送信する方法はありますか?
2 つのファイル アペンダを定義できると思います。以下のように、1 つはルート レベルで、もう 1 つはパッケージ (必要に応じてパッケージ レベルを選択) レベルです。
# Root logger option
log4j.rootLogger=DEBUG, RootFileAppender
#Shunted Logger option
log4j.logger.com.shunted=ERROR,ShuntedFileAppender
# RootFileAppender - used to log messages in the root.log file.
log4j.appender.RootFileAppender=org.apache.log4j.FileAppender
log4j.appender.RootFileAppender.File=root.log
log4j.appender.RootFileAppender.MaxFileSize=100MB
log4j.appender.RootFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RootFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n
# ShuntedFileAppender - used to log messages in the shunted.log file.
log4j.appender.ShuntedFileAppender=org.apache.log4j.FileAppender
log4j.appender.ShuntedFileAppender.File=shunted.log
log4j.appender.ShuntedFileAppender.MaxFileSize=10MB
log4j.appender.ShuntedFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ShuntedFileAppender.layout.ConversionPattern= %5p [%t] (%F:%L) - %m%n
注: 2 つのロガー オプションを異なるレベルとして定義することもできます。上記の例では、ROOT は at で定義されDEBUG
、shunted はERROR
レベルとして定義されます。