2009-08-21 29 views
0

私のJavaサーブレットコードでは、プログラムでjettyアクセスログに書き込むことができます。私は、jettyが自動的にすべての着信HTTPリクエストをアクセスログに記録することを認識しています。しかし、私のサーブレットはアクセスログに自分の行を追加する必要があります。誰かがここで何か似たようなことをしていますJetty:アクセスログに書き込む方法

ありがとうございます!

答えて

3

私はLispnikは正しい軌道に乗っていると思います。 http://docs.codehaus.org/display/JETTY/Logging+Requestsで説明されているNCSARequestLogのハンドルを取得し、log()を呼び出してログメッセージを直接送信したいとします。だからあなたは現在、NCSARequestLogを設定しているコード内の場所を見つけて、それが作成したログにポインタを返すコードの修正版を置き換えたいと思う。

2

ここで誰かが同じことを探すのであれば、それは桟橋が簡単に行うことのもう1つですが、ドキュメントは貧弱です。とにかく、Jetty 9の場合は、$JETTY_HOME/etc/$JETTY_HOME/etc/jetty.confにあるファイルであるjetty-requestlog.xmlを追加するだけで、基本的なリクエストログを取得できます。もちろん、設定を有効にするにはサーバーを再起動する必要があります。ところで

1

、突堤9で同じことを達成する別の方法は$JETTY_HOME/etc/jetty.xml"Handlers"セクションに(hereから)次の3行を追加することである:終わりに、

<Item> 
    <New id="RequestLog" class="org.eclipse.jetty.server.handler.RequestLogHandler"/> 
</Item> 

これらのセクションは、セクションのように見えるように、この012で「桟橋Serverのリクエストログの設定」、である

<Ref id="RequestLog"> 
    <Set name="requestLog"> 
    <New id="RequestLogImpl" class="org.eclipse.jetty.NCSARequestLog"> 
    <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Arg> 
     <Set name="retainDays">90</Set> 
     <Set name="append">true</Set> 
     <Set name="extended">false</Set> 
     <Set name="LogTimeZone">GMT</Set> 
    </New> 
    </Set> 
</Ref> 

"Handlers"セクションで、次のコードを追加します。

関連する問題