2

ロギングファサードとしてslf4jを使用するwarファイルとしてパッケージ化されたWebアプリケーションがあります。によって異なりますがslf4j-api-*.jar、中には含まれていません。この戦争をJettyに展開し、Webコンテナー側でロギングを構成したいと思います。ログを書き込むように構成した
slf4j-api-*.jarおよびlogback-classic-*.jartologback-core-*.jar${jetty.home}/lib/exttologback.xmlを配置しました。 これは完全に機能しますが、すべてをログに記録しています。それぞれの戦争ログと桟橋のログを別々のファイルに書き込みたいです。 ${jetty.home}/resources${jetty.home}/logs/jetty.log
jetty.log

  1. ロギングフレームワークは重要ではありません。役立つ場合は、ログバックとは異なるものを使用できます。
  2. logbackドキュメントの「LoggingSeparation」の章をすでに読みました。これにより、web.xmlを変更し、ログバックjarをwarに追加する必要があります。したがって、これは私が望んでいることではありません。
  3. 「ログバックを使用したJetty/Tutorial /SiftingLogs」はすでに読んでいます。アプリケーションではなくhotstnameで区切ることなので、役に立ちません。
4

1 に答える 1

1

ドキュメント「LogBackを使用したログのふるい分け」では、例ではslf4jMDCを使用して「ホスト」を分割として設定しています。独自のMDCHandlerで、任意の分割選択を使用できます。

重要なのはMDCHandlerを使用することであるため、着信Requestオブジェクトに存在するすべての情報をマイニングできる必要があります。(この理由は、MDCHandlerがサーブレットのスコープの参加者ではなく、Webアプリケーション自体のコンテキストの前にあるためです)

1つの手法は、request.getContextPath()を使用して、Webアプリがデプロイされているコンテキストを分割することです。

于 2013-01-02T22:49:50.250 に答える