2

通常、アプリケーション (たとえば Web アプリケーション) では、起動時に作成されたロガーのインスタンスが 1 つあります。それはシングルトンであっても問題ありません。重要なことは、アプリケーション全体に対して 1 つのインスタンスがあることです。java.util.logger を使用します

ここで、2 人の異なるユーザーからの 2 つの要求があり、例外をスローし、ログ ファイルに書き込まれる要求をログに記録しています。ログ ファイルへのこれら 2 つの異なる要求の書き込みは、何らかの方法で同期されていますか? それとも、Tomcat ログ ファイル内の 2 つのリクエスト間ですべてが混同されているログを取得するまれなケースを見つけたので、それらを明示的に同期する必要がありますか?

ここでは、2 つのログ メッセージを分離するだけで、因果関係についてはまったく気にしていません。

4

1 に答える 1

6

のJavaDocをLogger引用して、同期は必要ありません:

Logger のすべてのメソッドは、マルチスレッド セーフです。

異なるスレッドからの個別の呼び出しは、引き続きインターリーブできることに注意してください。これは、1 つのメッセージが他のメッセージによって中断されたり、スライスされたりしないことを意味します。

于 2013-01-08T09:19:35.157 に答える