线上jetty环境如何配置request log

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zx_emily/article/details/79975389

第一种方法,最简单便捷,适应于要求不高的场景

首先要enable request log模块,通过以下命令

$ java -jar ../start.jar --add-to-start=requestlog

INFO: requestlog      initialised in ${jetty.base}/start.d/requestlog.ini
MKDIR: ${jetty.base}/logs
INFO: Base directory was modified

注意从$JETTY_HOME和从$JETTY_HOME/demo-base下启start.jar,是用的不同的jetty.base, jetty推荐把web application放到demo-base下面。具体细节可参考 Deploy to Jetty

此时去demo-base/start.d/下面新添加了requestlog.ini文件,编辑此文件可以看到各种有关于requestlog的默认配置,如果需要更改默认配置,直接un-commenting这行,然后把false改为true即可,十分方便。

上述这种方法用的是默认的Jetty的RequestLog实现方式org.eclipse.jetty.server.NCSARequestLog, 如果想要用自己定制的requestlog实现类,那么可以自己实现jetty的RequestLog接口。用下面这种方式实现自由的自定义化。

第二种方法

在jetty.xml里添加handler的方式,自定义使用log实现类

<Call name="insertHandler">
     <Arg>
       <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"/>/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>
        <Set name="LogLatency">true</Set>
        </New>
        </Set>
      </New>
     </Arg>
</Call>

可以在<New id="RequestLogImpl" class="org.eclipse.jetty.server.NCSARequestLog">里

定义使用自己喜欢的requestlog实现类。至于用其他的requestLog的实现类,可以参考

https://logback.qos.ch/access.html

这篇是logback实现的requestLog。

参考文献:

https://www.eclipse.org/jetty/documentation/9.4.x/configuring-jetty-request-logs.html


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页