2

を使用しxsbt-web-pluginて Web サービスを開発しています。

デバッグを容易にするために、以下の行のようにコンソールでリクエスト ログをオンにしたいと思います。

[22/Dez/2012:15:29:56 +0000] "GET /messages HTTP/1.1" 200 27276

本番環境では問題なく使用していますが、開発環境では/を介してコンテナを開始した場所にNCSARequestLogログを含めたいと考えていますsbt consolecontainer:start

リクエスト ログを有効にするにはどうすればよいですか?

4

1 に答える 1

1

リクエスト ログを有効にするにはNCSARequestLog、カスタムjetty.xmlファイルを使用して構成できます。

これをbuild.sbtに追加します:

env in Compile := Some(file(".") / "jetty-env.xml" asFile)

myproject/jetty-env.xml を作成します。

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

  <Set name="handler">
    <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler">
      <Set name="requestLog">
        <New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">
          <Set name="filename"><Property name="jetty.logs" default="./logs"/>/test-yyyy_mm_dd.request.log</Set>
          <Set name="filenameDateFormat">yyyy_MM_dd</Set>
          <Set name="LogTimeZone">GMT</Set>
          <Set name="retainDays">90</Set>
          <Set name="append">true</Set>
        </New>
      </Set>
    </New>
  </Set>

</Configure>

sbt で を実行すると、 myproject/logscontainer:startの下に収集されたリクエスト ログが表示されます。これをテストしたところ、Jetty は自分でログディレクトリを作成しませんでした。自分で作成する必要がありました。

次のコマンドを使用して、リクエスト ログをリアルタイムで見ることができますtail

tail -f myproject/logs/test-2013_08_23.request.log

この完全な例については、xwp-template のrequest-loggingブランチを参照してください。

于 2013-08-23T21:07:46.710 に答える