2009-04-14 6 views
0

アプリケーションには、データベースログ、weblog、quartzlogなどの複数のログファイルがあります。ログファイルの選択

package/app/database配下のファイルからのログはすべてデータベースログに記録されます。 パッケージ/ app/offlineにあるファイルからのログは、すべてquartzlogログに記録されます。

私たちは今必要なのは、/ app/databaseのjavaファイルからのログ・ステムをデータベース・ログの代わりにquartzlogに出力することです。

Javaファイルで特定のログファイルを選択するにはどうすればよいですか?

答えて

1

目的のファイルにログインする適切なアペンダーを定義する必要があります。どのようにそれを行うことができます参照してくださいthis short introductionを参照してください。

次に設定ファイルに、あなたが選択したアペンダに行くために、特定のパッケージからのすべてのメッセージを指示することができます。

log4j.logger.my.package = DEBUG, myFileAppender 

EDIT:

私はlog4jの中で唯一のパッケージ解像度があると信じています可能 - ファイルまたはメソッドごとにアペンダーを使用することはできません。 log4jの上に余分なレイヤーを追加したり、独自のアペンダーを実装したりすることで、この問題を回避できます。たとえば、代わりにlog.debug利用の

my.loggerproxy.log.debug(message); 

あなたが唯一の方法からそれを実行する必要がある場合には、上記で十分でしょう。ロガープロキシパッケージを別のファイルに記録するように指示するだけです。

+0

ありがとうございます。はい、私たちはこれを既に持っています。しかし、私が必要とするのは、ある特定のメソッド(デリゲートのメソッドと言う)からの出力ログステートメントで、別の出力ファイル(quartz)に入ることです。 –

+0

編集:説明をありがとうございます。私はもっ​​と探るだろう –

+0

log4の上に余分なレイヤーを追加する上での指針は助けになるだろう。私はそれを理解できませんでした。 Thanks –