アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちはJsp+servlet+beanでWEBアプリを作っていますが、
WEBの性質上同時アクセスがあった場合、それぞれがログファイルに書き込もうとして、ログファイルがぐちゃぐちゃになりませんか?
シーケンシャル処理(セッションAのログ出力完了後セッションBが出力する)はどうやって実現できますか?
なんらかの原因でセッションのログ処理が永遠に終わらない場合、その他のログ出力セッションは待たされますか?(業務が停止すると困るので・)

Log4jを使う予定ですが、上記の問題を解決できますか?
ありがとうございます。m-.-m

A 回答 (1件)

質問を具体的に書くとこういうことかしら?



Log.debug("start user:" + user);
Log.debug("end user:" + user);

こんなコードがあったとする。
AさんとBさんがアクセスしたときに期待される出力は
start user:A
end user:A
start user:B
end user:B
だけど、しかし、次のようになることもある。
start user:A
start user:B
end user:A
end user:B

確かに普通に発生する現象ね。
一番単純な考え方は、処理が終了するまではログをバッファリングしておいて
最後のときにまとめて出力
て言うやり方よね。
イメージ的には次な感じ。
buffer.append("start user:" + user);
buffer.append("end user:" + user);
Log.debug(buffer);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!