2016-11-28 36 views
0

私は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がロギングサブシステムは、すべてのログメッセージのためにこれを行うには得ることができますか?

+1

あなたは、ユーザーを追加または(あなたのロギングフレームワークに依存する) 'MDC'のようなものを使用する必要があると思いますどちらか。ロギング自体はユーザーの知識を持ちません。 –

+0

あなたの答えはたくさんあります。私のベストプラクティスは、現在のセッションを参照するカスタムログハンドラを実装するWildflyモジュールを作成することです。それは可能でしょうか?私はcusom wildflyモジュールを構築して配備する方法を理解するのに苦労しています。私は誰かが正しい方向に私を指すことができれば感謝します。 – Thomas

+1

ロギングはセッションが何であるかを知らないので、動作しません。 MDCにユーザーを挿入するサーブレット・リスナーを使用して、要求が完了したときにそのサーブレット・リスナーを除去することができます。 –

答えて

関連する問題