logs.jutでユーザー名とクライアントのIPアドレスを印刷する必要があります。ユーザー名はlog4jのMDCを使用している最初のスレッドに対してのみ表示されます。次のスレッドは値を空白として表示します。どのようにこれをさらに進めるかを提案することができます。log4jのログイン名
0
A
答えて
1
MDCは、値を格納するためにThreadLocal
を使用します。たぶんLog4J(Logbackのような)はInheritableThreadLocal
を使用します。あなたのような問題を部分的に解決します。新しく作成されたスレッドは親スレッドからMDCを継承します。
私はまれにEE環境で専用スレッドを作成しているので、MDCを継承するだけでは役に立ちませんが、オンデマンドでプールが大きくなると混乱が生じるかもしれません。残念ながら、この場合は、新しいスレッドに切り替える際にMDCを明示的に設定する必要があります。さらに重要なのは、後でクリーンアップする必要があります。そうしないと、プールスレッドは古いMDCで汚染されます。
たとえば、有効なMDC値を含むWebスレッドからJMSメッセージを送信する場合、必要なMDC値を追加する必要があります。メッセージヘッダーに追加します。あなたが(JMSスレッドで)JMSメッセージを受信したときに続いて、手動でこの値をretriveし、それらを登録する必要があります。
public void onMessage(Message message) {
MDC.put("user", message.getStringProperty("user"));
try {
//handle the message
} finally {
MDC.clear();
}
}
あなたは同様の登録申請は、別のスレッドにジャンプするたびに実行する必要があります。もう一度 - クリーンアップは非常にです。
関連する問題
- 1. log4jロガークラス名ワイルドカード
- 2. weblogicでのlog4jログインの使用9/10
- 3. Log4j SmtpAppender - 件名の例外
- 4. log4jファイル名azure Webサービスのホスト名
- 5. Log4j 2間違ったアペンダーでログイン
- 6. Log4jはファイルにログインできません
- 7. は、私は現在、電子メールのエラーがでのlog4jてログインlog4jの
- 8. log4j JDBCAppenderテーブル名をローテート
- 9. Log4j DailyRollingFileファイル名の前の日付
- 10. ログイン名とは異なるログイン名
- 11. Mybatis log4jコンソールのsqlログインの印刷方法は?
- 12. Application Insightsログファイル名によるLog4jフィルタ
- 13. Grails/Groovy log4j - ログの行番号、メソッド名、クラス名
- 14. Log4jがファイルまたはコンソールにログインしていません
- 15. FacebookログインWinFormsユーザー名
- 16. Log4jエラー:NoClassDefFoundError:org/apache/log4j/xml/DOMConfigurator
- 17. slf4j-log4j bridge with log4j 2.8.1
- 18. PHPでログイン、ユーザー名のチェック
- 19. log4jがデータベースにログインできなかった場合、どのようにファイルにログインするのですか?
- 20. GrailsのLog4jフィルタLog4j DSL設定
- 21. ログイン私のユーザ名シェアポイントそのシステムのログイン名を示しています
- 22. ファイルにログインするためのuuidをlog4jに追加するには?
- 23. Slf4j対Log4j - Sparkクラスタモードでのログインにはどちらを使用しますか?
- 24. のWebsphere(Log4jの)
- 25. log4jに現在の日付を含むログファイル名
- 26. log4jロールオーバーのファイル名形式を変更するには?
- 27. log4jをlog4j2に変換する。 RollingFileAppenderで、サイズとファイル名のパターン
- 28. のlog4j:ポリシー
- 29. DailyRollingFileAppenderのLog4j FileNamePattern
- 30. log4jのカスタムレイアウト
1-どのように次のスレッドを決定していますか?次のリクエストであれば、MDCに値を入力するコードを渡す必要があります。 MDCから値を削除しているのは、要求/スレッドが完了するときだけです。 –