3

私が作業しているWebアプリケーションは、ユーザーのデータ整合性の問題についてより多くのログを提供します。次のような情報を取得したいと思います。

  • サーバー名
  • クライアントIP
  • ブラウザ情報

log4jで上記のパラメーターをログに記録できるようにする方法はありますか?つまり、これらのパラメーターを他のパラメーターと一緒に追加したいと思います。それで、log4jはこれのためのいくつかの方法を提供しますか?

私はlog4j.propertiesを次のように持っています:

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n

log4j.appender.Stdout=org.apache.log4j.ConsoleAppender
log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.Stdout.layout.conversionPattern=%-5p - %-26.26c{1} - %m\n

log4j.rootLogger=INFO,Stdout

log4j.logger.org.apache.wicket=INFO
log4j.logger.org.apache.wicket.protocol.http.HttpSessionStore=INFO
log4j.logger.org.apache.wicket.version=INFO
log4j.logger.org.apache.wicket.RequestCycle=INFO

LogUtil.java利用可能な情報をログに記録しているクラスがあります。

編集: 私の質問が何であるかをより明確にするために:

これらのパラメーターはどこにあり、既存のロガーに追加する方法は?

4

3 に答える 3

3

MDCを調べます。

実際に処理を開始する前に、言及した情報を使用してMDCをセットアップする必要があります。次に、そのような情報をログメッセージに含めることができます。

于 2013-03-18T07:11:35.060 に答える
3

これらの情報は HttpServletRequest オブジェクトから取得できます。これを実現するために MDC を使用できます。

Log4j MDC (Mapped Diagnostic Context) チュートリアル

SMTPAppenderを拡張することで、Log4j メールで送信される詳細をカスタマイズすることもできます

このブログをチェックしてください。

SMTPAppender のカスタマイズ

于 2013-03-18T07:08:55.003 に答える
1

必要な情報のほとんどを提供する HttpServletRequest クラス API を確認してください。多くの情報は、リクエスト ヘッダーを介して入手できます。

Java コードでログを記録しているときはいつでも、上記の値を使用してログ文字列を作成できます。

もう 1 つのオプションは、MDC を使用することです。設定すると、自動的にログに記録されます。

于 2013-03-18T07:13:09.643 に答える