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