問題タブ [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.
logging - log4j でのユーザー名のロギング
ユーザー名とクライアント IP アドレスをログに出力する必要があります。しかし、ユーザー名は、log4j で MDC を使用する最初のスレッドに対してのみ出力されます。次のスレッドから、値は空として出力されます。これをさらに進める方法を提案できますか。
logging - MDC が SLF4J で動作しない
ロギング フレームワークとして SLF4J (log4j を使用) を使用します。オンライン ドキュメントによると Log4j でサポートされている MDC 機能を活用しようとしています。
SLF4J を使用している場合、MDC は機能しません。ただし、代わりに log4j を使用すると、問題なく動作します。ドキュメントには、基礎となるフレームワークが MDC をサポートしている限り、SLF4J はそれをサポートする必要があると記載されています。
SLF4J 1.6.4 ( を使用しslf4j-api
てslf4j-log4j12
おりslf4j-simple
、依存関係として に追加されていますpom.xml
)。
どこかに不一致/不一致がありますか? 依存関係が不足していませんか? 任意の入力をいただければ幸いです。
java - EJB3相関ID
現在、私の同僚はロギングサブシステムに取り組んでおり、あるビジネスメソッドから開始された個別の操作をバインドしたいと考えています。たとえば、BeanAのメソッドがBeanBのメソッドを呼び出し、次にBean Cのメソッドを呼び出す場合、BeanBのビジネスメソッドよりも知っておくと便利です。BeanCはBeanAのメソッドのスタッフを何人か実行します。 BとCのメソッドが、BeanAの具体的な呼び出しのためにいくつかの作業単位を実行したことを知っています。
それで、問題は、この作業単位をどのように合計に結び付けるかということです。明らかに、バインディングにメソッド引数を使用するのは美しくありません!
また、前の質問に十分近い別の質問をする時が来たと思います。Bean AからAから呼び出される別のBeanにコンテキスト情報を伝播したい場合はどうなりますか?セキュリティクレデンシャルやセキュリティプリンシパルのようなものですか?私に何ができる?私が尋ねた質問は、ある種の悪い習慣ですか?
java - リクエスト追跡ロガー
リクエストの追跡に行き詰まっています。(アスペクト指向プログラミングを使用して) コンポーネント名と時刻を取得するのは簡単ですが、リクエストの ID (requestID) を持っていません。
次のようなログが必要です。
RequestID ComponentName 時間
- Add547 C4 5s
- 検索547 C1 5s
- 検索778 C1 2s
- Add547 C1 15s
- Search778 C4 20代
- Search547 C5 10s
- 検索547 C3 2s
- 検索547 C2 1s
- Search778 C2 12s
- Search547 C6 55s
- 検索778 C6 1s
- Add547 C2 6s
- Add547 C3 46s
このようなファイルを簡単に受け取るために、それはまさに私が探しているものです:
RequestID ComponentName 時間
- 検索547 C1 5s
- Search547 C5 10s
- 検索547 C3 2s
- 検索547 C2 1s
- Search547 C6 55s
RequestID ComponentName 時間
- 検索778 C1 2s
- Search778 C4 20代
- Search778 C2 12s
- 検索778 C6 1s
RequestID ComponentName 時間
- Add547 C4 5s
- Add547 C1 15s
- Add547 C2 6s
- Add547 C3 46s
私のすべての調査により、MDC と SiftingAppender で log4j を使用するようになりましたが、多くのクラス、サブシステム、およびスレッドを通過するため、リクエスト全体で一意の ID を提供できるかどうかはわかりません。
元のシステムを変更せずにできるかどうか教えていただけますか? (外部コンポーネントである必要があります)。これを行う方法を示すチュートリアルを知っていますか?
java - logback print full MDC in appender
a のアペンダーではlogback.xml
、MDC の反復処理、MDC 全体の印刷などの操作を実行できますか? これを行う最も簡単な方法は、基本的に Java/Groovy コードを使用することです (方法はまだ調査していません)。
logging - ログ ビューア - MDC サポート
MDC をサポートする、log4j で生成されたプレーン テキスト ファイルのログ ビューアを探しています。Chainsaw、LogSaw、Otros などをいくつか調べましたが、NDC しかサポートしていないようです。
誰かが私を正しい方向に向けることができますか?
java - slf4j は常に NOPMDCAdapter を使用します
プロジェクトへのログインに slf4j を使用しています。また、ユーザー ID パラメーターのログ記録に MDC を使用したいと考えています。だから私はチュートリアルとドキュメントをチェックし、次のようなコードを作成します:
userId は実際には文字列です。
そして、私は通常の log4j xml をアペンダーなどのプロパティで使用します。そこに %X{key} を追加しますが、何も起こりません。%X{key} の代わりに何も表示されませんが、%-5p や %c などの他のパラメーターはうまく機能します。
だから私はデバッグを使用してMDC.put()メソッドで何が起こるかを見て、MDCの初期化で使用されていることを見つけました:
IDEA でデバッグすると、MDCAdapter の実装の 1 つのような "Log4jMDCAdapter" があることがわかります。しかし、次に StaticMDCBinder を確認すると、次のようなコードがあります。
では、slf4j が log4j などの適切なアダプターを使用して MDC を初期化できる可能性はありますか ??? わかりませんでした。常に NOPMDCAdapter を使用するため、MDC に何も保存できず、ログに表示できません。どうすれば修正できますか??
クラスパスには次のものがあります:
- log4j-1.2.16.jar
- slf4j-api-1.6.1.jar
- slf4j-api-1.6.2.jar
- slf4j-jcl-1.6.2.jar
- slf4j-log4j12-1.6.2.jar
java - Use Mapped Diagnostic Context (MDC) for passing colum values to log4j prepared statement
Is it safe to Use MDC to pass column values and xmls dynamically to a preparedstatement in log4j.xml. If yes, then how and when can i clear it to avoid memory leaks.
FYI - many threads are going to use my log4j simultaneously.
java - JUL (Java.util.Logging) の MDC (Mapped Diagnostic Context) サポート
Slf4j と java.util.Logging を使用してロギング メカニズムをセットアップしました。いくつかのスレッドがあるため、ログが混在しているため、ログから明確なアイデアを得ることができません。ここで、MDCの概念を使用して、ログ ファイルにさらにデータを追加して、それらが明確になるようにします。
問題はSlf4jと同じですが、MDC java.util.Logging をサポートしていません。しかし、それは言う
基礎となるフレームワークが java.util.logging などの MDC を提供しない場合、SLF4J は引き続き MDC データを保存しますが、その中の情報はカスタム ユーザー コードで取得する必要があります。
このカスタム コードを実行する方法を見つけようとしています。グーグルはあまり役に立ちません。Slf4j には「BasicMDCAdapter」という名前のヘルパー クラスがあります。しかし、私はそれを使用する方法がわかりません。サンプルコードがどこにも見つかりませんでした。
これはこれを支援するコードでもありますが、まだ少し説明していません。
ここの誰かからの助けに感謝します。
ありがとうございました。