問題タブ [mdc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
slf4j - MDC の永続的またはデフォルトのキーと値のペアをセットアップする方法はありますか
すべての MDC インスタンス間で静的になるキーと値のペアを MDC 内に配置したいと考えています。
これを設定する方法はありますか?
それが役立つ場合、私はJavaとSpringで作業しています
ありがとうございました。
java - セッション情報を Axis2 ハンドラーに渡す方法
トップレイヤーでサービスを公開し、ボトムレイヤーでサービスを消費するためのAxis 2クライアントを持つミドルウェアJavaスプリングアプリケーションがあります。サービス層で要求が行われると、MDC (log4j 1.x) を使用してセッション ID がスレッド コンテキストに追加されます。
サービス層 (上) と統合層 (下) からのすべてのログは、MDC を使用してセッション ID を出力するため、これらのログを関連付けることができます。
問題は、axis2 クライアントの要求と応答の xml を出力する必要もあったことです。これを実現するために、次のハンドラーを作成しました。
また、これを InFlow、InFaultFlow、OutFlow、OutFaultFlow の axis2.xml に追加しました
<handler name="XMLLoggerDispatcher" class="com.xxx.xxx.logging.AxisXmlLoggerHandler"/>
これは xml のログ記録には完全に機能しましたが、MDC が子スレッドにコピーされ、ハンドラーが別のプールから実行されるため、セッション ID は MDC にありませんでした。
だから私が直面している質問は、MDC をハンドラー スレッドにどのように取得するかということです。
本当に必要なのはセッションIDなので、他のオプションがあるかもしれません。たとえば、送信ヘッダーにセッション ID を追加するので、ハンドラーからヘッダーにアクセスし、他のメカニズム (カスタム ライフサイクル) を介して要求メッセージと応答メッセージを関連付ける方法を見つけることができれば、それも解決できると考えました。私の問題。ただし、ハンドラーからの SOAP エンベロープでヘッダーを見つけることができませんでした。ハンドラ クラスから次の 2 つの方法で試しました。
どちらの場合も、ログにはヘッダーが表示されません。また、フロー内のさまざまなフェーズに移動しようとしましたが、影響はありませんでした。どんな助けでも大歓迎です
java - デフォルトの log4j MDC 値
log4jのconfig xmlを使用して、MDCで欠落しているエントリのデフォルト値を指定する方法を知っている人はいますか? 次のように XML ファイルでアペンダーを定義しています。
問題の部分は、MDC からの注文 ID (%X{orderID}) です。私は周りを検索し、$${orderID:-DefaultValue} の行に沿って何かを言っている同じスレッドの重複を見つけましたが、これはこのコンテキストでは機能しません。注文 ID を持たないコンテキストでログ メッセージが受信されたときに、値を 0 または -1 またはその他のセンティナル値にデフォルト設定できるようにする必要があります。
logging - Logback/SLF4J で MDC.remove() を使用する理由
MDC はクライアント サーバーで使用され、どのログがどのクライアントのものかを調べるためにログを記録していることを知っています。(参考)
しかし、なぜ使用するのMDC.remove()
でしょうか?
それはメモリ効率の問題ですか?
java - モジュール間のロギングを区別するための MDC
私のソフトウェアはサービス指向アーキテクチャ (SOA) を使用しています。すべてのサービス (簡単にするためにモジュールと呼びます) は、1 つのログ ファイルに書き込みます。モジュール間でロギングを区別したいと思います。以下は、ログメッセージをどのように見せたいかです。
これを行う利点は、ログを「追跡」しながら必要な情報を grep できることです。また、ログを分析しながら、必要なモジュールごとの情報を grep できます。これは達成可能ですか?ロギング ユーティリティとして log4j を使用しています。各モジュールには複数のパッケージ (パッケージの階層) を含めることができることに注意してください。これを達成するために私が遭遇した最も近いものは、MDC を使用することです。