- - PR -
[log4j]マルチプロセスでのログ出力について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-28 17:23
いつもお世話になります。
log4jを使って、ログ出力を考えています。 マルチプロセスで動作し、1ファイルにログを出力させる場合 ログファイルへのアクセス権の取得待ちが発生し、 処理時間に影響するほど待ちが発生するものでしょうか? 不勉強で申し訳ないですが教えてください。 | ||||
|
投稿日時: 2005-11-28 18:36
細かいツッコミですがマルチスレッド、ではなくマルチプロセスで合っていますか?
ディスクへの書き出しは基本的にシリアライズされますので厳密にはパフォーマンスに影響するでしょう。 極端にログ出力量が多い状況でなければ 無視出来る程度かと思います。 影響はディスクのパフォーマンスや処理並列度、書き出すログの量、頻度に依存します。 「処理時間に影響するほど」というしきい値をどれくらいに設定するかによりますので、必要に応じて計測してみてはいかがでしょうか。 | ||||
|
投稿日時: 2005-11-28 19:06
インギさんありがとうございます。
ご指摘の通り、マルチスレッドでした・・・。 まだまだ計測するという段階には至っておらず、参考情報を探していたところでした。 下記のような状況を想定しています。 ※似たようなパターンを知っていましたら教えていただきたいと思います。 ・10多重で動作 ・1万レコードを単純な形式チェック(桁・属性) ・10%〜20%くらいワーニングとして出力(ログ出力は多め) また、処理時間が気になった場合(アバウトな表現ですみません) 設定しだいで何とかなるものなのでしょうか? | ||||
|
投稿日時: 2005-11-28 19:24
非同期で動作するAsyncAppenderというアペンダがあります。
内部ではログ用の別スレッドとキューとバッファを使用し、 非同期でログの出力を実現しています。 これならロックによる実行速度の影響を考える必要はありません。 設定方法は以下を参考にしてください。 http://www.nurs.or.jp/~sug/soft/log4j/log4j10.htm | ||||
|
投稿日時: 2005-12-01 20:14
かつのりさん
レス遅れてすみません。 おかげさまで解決いたしました。 また何かありましたら、よろしくお願い致します。 |
1