jetty的log配置

本文介绍了Jetty服务器的日志配置方法,包括日志接口的选择、相关jar包的添加、启动参数配置,以及如何解决HTTP请求日志不显示的问题。在Jetty中,通过设置-Dorg.eclipse.jetty.util.log.class指定日志接口,并在启动选项中添加路径。默认使用Slf4jLog,否则会使用StdErrLog。当HTTP请求日志不显示时,需将RequestLog handler放在配置的首位,并正确设置日志文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      最近使用到jetty服务器,但是配置它的log时遇见了一些问题。

      jetty日志原理:

      jetty实现了它自己的一个日志工厂类:org.eclipse.jetty.util.log.Log。该类被classloader加载的时会在classpath中查找有没有可用的日志接口(默认是slf4j,可以通过配置启动参数-Dorg.eclipse.jetty.util.log.class=xxxx来指定日志接口),如果找不到就用默认的标准输出日志实现(org.eclipse.jetty.util.log.StdErrLog)。

      实现方法

      jetty/lib/ext下放入3个jar包slf4j-api-1.4.3.jar,slf4j-log4j12-1.4.3.jar,log4j-1.2.12.jar

      slf4j-api-1.4.3.jar        slf4j的接口定义包

      slf4j-log4j12-1.4.3.jar slf4j到log4j的转接包

      log4j-1.2.12.jar           具体的日志实现包

     jetty/resources 文件夹下已经提供一个默认的log4j.properties

     启动的OPTIONS添加“ext,resources” ,这样就把jetty/lib/ext和jetty/resources路径添加到启动classpath中

===================================================================================================================

  1、web容器日志的配置

        Jetty6本身并不带slf4j,当它在启动时会试图加载slf4j的类,如果成功就使用org.mortbay.log.Slf4jLog来记录日志,将日志信息发给底层的日志系统。如果失败,就使用org.mortbay.log.StdErrLog来记录日志,也就是将日志信息输出到操作系统的stderr文件(标准错误输出)。

        在实际使用的时候,发现,有些服务器上面,不会显示http请求的log。查阅后,发现,这是jetty的一个bug。解决方案:

        在Jetty6自带的配置文件etc/jetty.xml中,已经包括了对于HTTP请求日志的配置。但是默认情况下并不会记录HTTP日志,除非你将它放在handlers的设置中,即:
<Set name="handlers">
<Array type="org.mortbay.jetty.Handler">
<Item>
<Ref id="RequestLog"/>
</Item>
......
</Array>
</Set>
           注意,RequestLog这个Item最好放在最前面,否则在Linux上会不起作用。
          在默认的请求日志的配置中,要加上这段:

<Set name="ignorePaths">
<Array type="String">
<Item>/image/*</Item>
<Item>*.css</Item>
</Array>
</Set>
        即,不需要记录对于图片和css文件的请求。

        另外,默认的HTTP请求日志文件的位置:
         <Arg><SystemProperty name="jetty.logs" default="./logs"/>/yyyy_mm_dd.request.log</Arg>
        需要改为:
         <Arg><SystemProperty name="jetty.home" default="."/>/logs/yyyy_mm_dd.request.log</Arg>

       否则在Linux上因为找不到jetty.logs,就会把文件写到其他地方,而不是在Jetty6的logs目录下了

    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值