Solr6.6配置jetty访问日志

solr6.6使用自带jetty启动时,默认只有solr本身的日志,若是须要jetty的access日志,能够按以下方式配置。web

原本自带jetty的jetty.xml文件中有以下配置:app

<!-- =========================================================== -->
    <!-- Configure Request Log                                       -->
    <!-- =========================================================== -->
    <!--
    <Ref id="Handlers">
      <Call name="addHandler">
        <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">
                   logs/request.yyyy_mm_dd.log
                </Set>
                <Set name="filenameDateFormat">yyyy_MM_dd</Set>
                <Set name="retainDays">90</Set>
                <Set name="append">true</Set>
                <Set name="extended">false</Set>
                <Set name="logCookies">false</Set>
                <Set name="LogTimeZone">UTC</Set>
              </New>
            </Set>
          </New>
        </Arg>
      </Call>
    </Ref>
    -->

放开注释就会启动报错,不是很熟悉jetty,也就没有深刻研究了,因而换了一种方式实现。eclipse

一、首先将solr/server/etc/jetty.xml中原来的RequestLog节点(找到以下内容)注释掉:webapp

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

二、在solr/server/contexts/solr-jetty-context.xml中添加以下内容:日志

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    ....
 
  <!-- access log:client IP address, date, method, URL, result, size, referrer, user agent and latency -->
  <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="/data/solr/logs"/>/access-yyyy_mm_dd.log</Set>
            <Set name="filenameDateFormat">yyyy_MM_dd</Set>
            <Set name="LogTimeZone">GMT+0800</Set>
            <Set name="retainDays">90</Set>
            <Set name="append">true</Set>
            <Set name="LogLatency">true</Set>
          </New>
        </Set>
      </New>
    </Arg>
  </Call>
 
</Configure>

其中,LogTimeZone为jetty记录日志的时区,好比GMT+0800或者Asia/Shanghai。code

重启solr后,在上面配置的{jetty.logs}目录下便会按天生成access-yyyy_mm_dd.log格式的访问日志。orm

相关文章
相关标签/搜索