- - PR -
log4jでのユーザ単位での切り分けについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-03 20:40
こんばんは。
現在、アプリ側でのログ出力にlog4jを用いています。 特に問題はないのですが、webからの同時に複数のアクセスがあった場合、 ログが混在してしまいます。 時刻なども表示されているので、注意深く追っていけば、わかるのですが、 ユーザ(同一セッション)ごとにログを出力しようかと考えています。 ただ、WEB側は、JSESSION_IDを出力してやればよいと思うのですが、 単体のクラス(HTTP_SEVLERTを継承していないクラス)では、どうしても、JSESSION_IDを 表示させることができません。 ユーザ単位でユニークになるようなうまいログの出力の仕方などはございますでしょうか? | ||||
|
投稿日時: 2006-07-03 21:26
1リクエストに注目するなら、スレッド名はいかがでしょうか。
リクエストの中からスレッドを生成していない限り、 通常は1リクエスト1スレッドとなります。 リクエストのスレッド名だけではスレッドの特定が出来ない場合、 (全スレッドの名前が全て同じ等・・・)
で、その現在のスレッドのオーバーライドされていないハッシュ値が取得できますが、 そのハッシュ値ならほぼ一意にスレッドを示せますので、 ログに出力すればリクエストを特定することが出来ると思います。 | ||||
|
投稿日時: 2006-07-03 21:32
まさにそのためにNDCというのがあるはずです。 | ||||
|
投稿日時: 2006-07-04 22:17
ご回答ありがとうございます。
かつのり様 >System#identityHashCode(Thread.currentThread()); 現在、リクエストの中からスレッドは起こしていませんので、 上記手法はとても参考になりました。 ありがとうございした。 なちゃ様 >まさにそのためにNDCというのがあるはずです。 NDCというのを知りませんでした。 log4j固有の機能のようなので、調査して使用してみたいと思います。 ありがとうございました。 |
1