簡體   English   中英

碼頭:如何編寫訪問日志

[英]Jetty: How to write to access logs

在我的Java servlet代碼中,我希望能夠以編程方式寫入碼頭訪問日志。 我知道碼頭會自動將每個傳入的HTTP請求記錄到訪問日志中。 但是,我的servlet偶爾需要將其自己的行附加到訪問日志中。 這里有人做過類似的事情嗎?

謝謝!

我認為Lispnik走在正確的軌道上。 您想獲得http://docs.codehaus.org/display/JETTY/Logging+Requests中描述的NCSARequestLog的句柄,並通過調用log()直接向其發送日志消息。 因此,您想在代碼中找到當前正在配置NCSARequestLog的位置,並替換代碼的修改版本,該版本將使指針返回其創建的日志。

如果有人跌跌撞撞地在這里尋找相同的東西,那是跳船容易做到的另一件事,但文檔不足。 無論如何,對於Jetty 9,只需在$JETTY_HOME/etc/的文件jetty-requestlog.xml添加到$JETTY_HOME/etc/jetty.conf即可獲得基本的請求日志。 當然,您必須重新啟動服務器才能使配置生效。

順便說一句,在Jetty 9中完成此操作的另一種方法是在$JETTY_HOME/etc/jetty.xml"Handlers"部分中(從此處開始 )添加以下三行:

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

然后在"Handlers"部分的末尾添加以下代碼:

<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>

也就是說,使這些部分看起來像此頁中的 “配置Jetty服務器的請求日志”部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM