1

org.apache.log4j を使用して、アプリケーションにすでに広範なログを記録しています。ここで、これらのメッセージの一部を新しい XML ログ ファイルに移動する必要があります (元のログ ファイルには引き続き移動します)。

これは可能ですか?これらのメッセージを特定して、通常のログ ファイルに加えて特別な場所に送信する方法はありますか?

4

1 に答える 1

1

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レベルとして定義されます。

于 2012-10-03T16:25:44.900 に答える