- - PR -
log4jについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-10-18 20:42
log4jを使用してOracleへログを出力しようとしています。
ログの出力内容として、以下を考えており、 テーブル構成についても同様としたいと思っています。 @日付 Aレベル(DEBUG,INFO等) BセッションID Cログインユーザ名 Dエラーメッセージ メッセージに不可する情報(BC)を分けて登録する方法はないのでしょうか? ご教授お願いします。 【log4j設定ファイル】 log4j.appender.jdbc.layout.ConversionPattern= INSERT INTO T_LOG(日付,レベル,セッションID,ログインユーザ名,エラーメッセージ) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%-5p', '%m', '%m' ,'%m') ※「%m」を分割するイメージです。 |
|
投稿日時: 2006-10-18 21:33
Oracle10gだったら、正規表現で文字列分割したりできるらしいので、
分割したい文字列同士の繋げ方を工夫して、REGEXP_SUBSTR関数で 分割して登録なんてできるかもしれないです。 |
|
投稿日時: 2006-10-18 21:43
org.apache.log4j.MDCを使うとよいかもしれません。
アクセスがあれば MDC.put("sessionid",sessionId); MDC.put("userid", userId); アクセスがおわったときに MDC.remove("sessionid"); MDC.remove("userid"); log4.xmlは、 %X{sessionid} %X{userid} のようなかんじでしょうか。 くわしくは、log4jのMDCのAPIなどを参照されてください。 |
|
投稿日時: 2006-10-19 09:31
ご回答ありがとうございます。
org.apache.log4j.MDCをしようすると実装できそうです。 少し気になる点は、値保持用のmapがstaticになっていたので 同時に複数アクセスが来た場合に正しい値が保証できないのかなと 思っています。 |
1