0
log4j2を使用してログをコンソールに、複数のスレッドのファイルに書き込みます。別のスレッドからの行を混ぜる代わりに、私はワーカースレッドのログを保持し、ワーカースレッドがメインスレッドに参加するときにそれらをフラッシュするだけです。どうやってやるの?代わりのようなログを持つ例えばlog4j2:ワーカースレッドがメインスレッドに参加した後のログのログ
、:
Thread 1 started.
Thread 2 started.
Thread 1 working...
Thread 2 working...
Thread 1 working...
Thread 2 working...
Thread 1 finished.
Thread 2 finished.
私が持っているしたいと思います:
Thread 1 started.
Thread 1 working...
Thread 1 working...
Thread 1 finished.
Thread 2 started.
Thread 2 working...
Thread 2 working...
Thread 2 finished.
このように、私はにスレッド固有のロガーを通過しなければなりませんどこにでもログを書く必要があります。 log4j2はこれを内部的に処理する方法を提供していますか? – Fan
あなたは何を意味するのかよく分かりません。上の例では、ログに記録されたデータが最初の呼び出しスレッドに返されます。これを避けるには、 'run'実装の完了時にログを出力することで回避できます。複数のスレッドのログを衝突させないようにするには、実際にロックを獲得するログアウト – copeg
私は現在静的なロガーを使用しています。しかし、あなたの答えでは、私はすべてのスレッドのロガーを作成し、他のクラス/メソッドに渡す必要があります。別の方法があるかどうか疑問に思うだけです。 – Fan