しばらくの間、これに関する答えを探しています。私が働いている会社には高度な並行システムがありますが、最近、Web サーバー (Jboss) のロギング構成にコンソール アペンダーが含まれていることがわかりました。アプリケーション ロガーもコンソールに送信されます。ロギング アクションでデッドロックが発生し始めました。そのほとんどはコンソール アペンダーです (Log4j には非常に厄介なシンクロナイゼーション バグがあることは知っていますが、関連するコードにシンクロナイゼーション メソッドがないことはほぼ確実です)。もう 1 つわかったことは、IT 担当者が定期的にパテ コンソールを使用してコンソールにアクセスし、一時停止してログを確認し、パテ ウィンドウを閉じることです。
コンソール アペンダー、および運用環境でのログ記録と監視にコンソールを使用すると、システムでデッドロックや競合状態が発生する可能性はありますか? 私の理解では、コンソールは IDE を使用した開発フェーズでのみ使用する必要があります。これは、並行性の高いシステムでは、競合状態の影響を受ける別のリソース (バッファリングされていない I/O のために低速) を取得するためです。
ありがとう。