首先在預設情況下tomcat是不開啟通路日志的。而且tomcat的日志檔案路徑預設存儲在tomcat安裝路徑下的logs檔案夾内。我們首先編輯 ${catalina}/conf/server.xml 檔案。 解釋 :${catalina} 是 tomcat 的安裝目錄。本篇中我們編輯檔案路徑為/usr/local/tomcat6/conf/server.xml。執行指令nano /usr/local/tomcat6/conf/server.xml。
在打開檔案後,将檔案内
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
的内容<!--與-->去掉,然後進行儲存檔案。
其中 directory是産生的目錄 tomcat安裝${catalina}作為目前目錄pattern表示日志生産的格式,common是tomcat提供的一個标準設定格式。其具體的表達式為 %h %l %u %t "%r" %s %b。此處解釋為:
%h 代表:通路的使用者IP位址。
%l 代表: 通路邏輯使用者名,通常傳回'-'。
%u 代表: 通路驗證使用者名,通常傳回'-'。
%t 代表: 通路日期。
%s 通路傳回的http狀态碼。
%b 通路資源傳回的流量。
<a href="https://s2.51cto.com/oss/201711/06/65ec233826bc28a95e828014446bf4b6.jpg-wh_500x0-wm_3-wmp_4-s_2399781721.jpg" target="_blank"></a>
待服務啟動後,在浏覽器進行項目的通路。然後我們檢視logs檔案夾内的localhost_access_log*.txt檔案。可以看到已經有通路日志了。
然後我們修改日志格式,設定為我們常用的格式。其中修改pattern内的内容為:%h %l %u %t &quot;%r&quot; %s %b %T。此段格式代表的意思詳細解釋為:
%h 通路的使用者IP位址。(不是用戶端IP位址的哦,要想在Tomcat中要記錄來訪者真實IP,隻需在日志模式中添加如下模式就行了:%{X-Real-IP}i)
%l 通路邏輯使用者名,通常傳回'-'。
%u 通路驗證使用者名,通常傳回'-'。
%t 通路日期。
%r 通路的方式(post或者是get),通路的資源和使用的http協定版本。
%s 通路傳回的http狀态碼。
%T 通路所使用的時間。
<code><Valve className=</code><code>"org.apache.catalina.valves.AccessLogValve"</code> <code>directory=</code><code>"logs"</code>
<code> </code><code>prefix=</code><code>"localhost_access_log."</code> <code>suffix=</code><code>".txt"</code> <code>pattern=</code><code>"%h %l %u %t &quot;%r&quot; %s %b %T"</code> <code>resolveHosts=</code><code>"false"</code> <code>fileDateFormat=</code><code>"yyyy-MM-dd.HH"</code><code>/></code>
<a href="https://s3.51cto.com/oss/201711/06/df84c027afd90e3c1ae231eb2f2b868d.jpg-wh_500x0-wm_3-wmp_4-s_2607788744.jpg" target="_blank"></a>
然後進行重新開機tomcat,然後進行重新檢視日志格式。可以看到已經出現我們要的日志。
<a href="https://s3.51cto.com/oss/201711/06/f9a7d7fd9dc475552440bfc7f4d59b15.jpg-wh_500x0-wm_3-wmp_4-s_2516616187.jpg" target="_blank"></a>
fileDateFormat="yyyy-MM-dd.HH",會讓日志檔案按小時進行滾卷,
比預設的按天滾卷要好些,尤其是通路量大的網站,可以考慮寫成fileDateFormat="yyyy-MM-dd.HH.mm",就會是每分鐘一個日志檔案了。
而且可以分别按Engine, Host, or Context,來記錄自己的日志
注:
%h 通路的使用者IP位址。(不是用戶端IP位址的哦,要想在Tomcat中要記錄來訪者真實IP,隻需在日志模式中添加如下模式就行了:%{X-Real-IP}i)
%h 通路的使用者IP位址,如果nginx代理,那記錄的就是nginx那台伺服器IP,就是内網IP
<code><</code><code>Valve</code> <code>className</code><code>=</code><code>"org.apache.catalina.valves.AccessLogValve"</code> <code>directory</code><code>=</code><code>"logs"</code>
<code> </code><code>prefix</code><code>=</code><code>"localhost_access_log."</code> <code>suffix</code><code>=</code><code>".txt"</code> <code>pattern</code><code>=</code><code>"%{X-Real-IP}i %h %l %u %t &quot;%r&quot; %s %b %T"</code> <code>resolveHosts</code><code>=</code><code>"false"</code>
<code> </code><code>fileDateFormat</code><code>=</code><code>"yyyy-MM-dd"</code><code>/></code>
本文轉自ling118 51CTO部落格,原文連結:http://blog.51cto.com/meiling/1979283,如需轉載請自行聯系原作者