私はWildfly 10で作業しており、私はそのログサブシステムを使用しています。Wildflyの各ログ行にユーザー名(プリンシパル)を追加するにはどうすればよいですか?
これで、セッションから現在ログインしているユーザー(プリンシパル)のLoginNameを、JBoss Logging Subsystemによって処理されるすべてのログメッセージに追加する必要があります。
アプリケーションのすべてのログメッセージにUserNameを追加するのではなく、これを行う一般的な方法はありますか?私は何ができる例えば
:
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
UserModel user = (UserModel)request.getSession().getAttribute("user");
String username = user.getName();
しかし、どのようにiがロギングサブシステムは、すべてのログメッセージのためにこれを行うには得ることができますか?
あなたは、ユーザーを追加または(あなたのロギングフレームワークに依存する) 'MDC'のようなものを使用する必要があると思いますどちらか。ロギング自体はユーザーの知識を持ちません。 –
あなたの答えはたくさんあります。私のベストプラクティスは、現在のセッションを参照するカスタムログハンドラを実装するWildflyモジュールを作成することです。それは可能でしょうか?私はcusom wildflyモジュールを構築して配備する方法を理解するのに苦労しています。私は誰かが正しい方向に私を指すことができれば感謝します。 – Thomas
ロギングはセッションが何であるかを知らないので、動作しません。 MDCにユーザーを挿入するサーブレット・リスナーを使用して、要求が完了したときにそのサーブレット・リスナーを除去することができます。 –