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

相關文章
相關標籤/搜索