轉 Tomcat訪問日誌詳細配置

來源:互聯網
上載者:User

標籤:

配置http訪問日誌。Tomcat內建的能夠記錄的http訪問日誌已經很詳細了
取消下面這段的注釋:

<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>

然後修改為:
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="combined" resolveHosts="false" fileDateFormat="yyyy-MM-dd.HH"/>

pattern="combined" 記錄的日誌內容更詳細,fileDateFormat="yyyy-MM-dd.HH",會讓記錄檔按小時進行滾卷,
比預設的按天滾卷要好些,尤其是訪問量大的網站,可以考慮寫成fileDateFormat="yyyy-MM-dd.HH.mm",就會是每分鐘一個記錄檔了。
而且可以分別按Engine, Host, or Context,來記錄自己的日誌

 

另一篇詳細的

 

在server.xml裡的<host>標籤下加上
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
就可以了,下面咱們逐一分析各個參數。

className 

官方文檔上說了This MUST be set toorg.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想配置訪問日誌?這就必須得寫成這樣。

directory 

這個東西是記錄檔放置的目錄,在tomcat下面有個logs檔案夾,那裡面是專門放置記錄檔的,當然你也可以修改,我就給改成了D:\

prefix

這個是記錄檔的名稱首碼,我的日誌名稱為localhost_access_log.2007-09-22.txt,前面的首碼就是這個localhost_access_log

suffix

這就是尾碼名啦,可以改成別的

pattern

這個是最主要的參數了,具體的咱們下面講,這個參數的內容比較豐富。

resolveHosts

如果這個值是true的話,tomcat會將這個伺服器IP地址通過DNS轉換為主機名稱,如果是false,就直接寫伺服器IP地址啦

還有一些參數:

rotatable

預設為true,預設的設定使得你的tomcat產生的檔案命為prefix(首碼)+.+時間(一般是按天算)+.+suffix(尾碼),參照我的日誌名就知道了:localhost_access_log.2007-09-22.txt
使用這個需要謹慎,因為你將其設定為false的話,tomcat會忽略時間,不會新組建檔案,最後導致你的檔案超級大,這樣產生的檔案名稱就是:localhost_access_log.txt

condition

這個參數不太實用,可以設定任何值,比如咱們設定成condition="tkq",那麼只有當ServletRequest.getAttribute("tkq")為空白的時候,才會被記錄下來

fileDateFormat

最後的一個參數,很明白,這就是時間格式嘛,但是這個時間格式是針對記錄檔起作用的,還記得咱們產生的記錄檔全名麼:localhost_access_log.2007-09-22.txt,這裡面的2007-09-22就是這麼來的,如果你想讓tomcat每小時產生一個記錄檔,也很簡單,將這個值設定為:fileDateFormat="yyyy-MM-dd.HH",當然也可以按分鐘產生什麼的,自己改改吧

上面是所有的9個參數,剛才咱們說了,pattern這個參數的值比較多,咱們拿下來單獨說:
pattern可以設定成兩種方式,第一種是pattern="common",第二種是pattern="combined"
這就可以控制日誌裡面的格式,各位說了,pattern就這兩種?common和combined又是什麼意

思,具體是什麼格式呢?
別著急,咱們一點一點看,其實pattern是可以設定的,common和combined只是整合了一些顯

示方式,就是將顯示方式給組合了,pattern的實際值有如下幾種,都是後面一個字母,前面

一個%百分比符號
咱們先貼出來我的日誌裡面的一條記錄,對應著看

127.0.0.1 192.168.254.108 - -1 127.0.0.1 HTTP/1.1 - GET 80&<60; GET /rightmainima/leftbott4.swf HTTP/1.1 304 5563A67708646B6AA299C33D59BE132A [22/Sep/2007:10:08:52 +0800] - /rightmainima/leftbott4.swf localhost 0 0.000

 

%a      

這是記錄訪問者的IP,在日誌裡是127.0.0.1

%A

這是記錄本機伺服器的IP,在日誌裡是192.168.254.108

%b

這是發送資訊的位元組數,不涵括http頭,如果位元組數為0的話,顯示為-

%B

看tomcat的解釋,沒看出來與b%的區別,但我這裡顯示為-1,沒想明白,望知道者告知,我把官方解釋貼出來吧 Bytes sent, excluding HTTP headers

%h

這個就是伺服器名稱了,如果resolveHosts為false的話,這裡就是IP地址了,我的日誌裡是127.0.0.1

%H

訪問者使用的協議,這裡是HTTP/1.1

%l

這個也不太清楚,官方也說這個always return ‘-‘ 官方解釋:Remote logical username from identd (可能這樣翻譯:記錄瀏覽者進行身分識別驗證時提供的名字)(always returns ‘-‘)

%m

訪問的方式,是GET還是POST,我這是GET

%p

本地接收訪問的連接埠,呵呵,我這裡是80啦

%q

比如你訪問的是aaa.jsp?bbb=ccc,那麼這裡就顯示?bbb=ccc,明白了吧,這個q是querystring的意思

%r

官方解釋:First line of the request (method and request URI),不是很明白

%s

這個是http的狀態,我這裡返回的是304,咱們經常看見訪問某個網頁報錯誤500什麼的,那也會返回500

%S

使用者的session ID,這個session ID大家可以另外查一下詳細的解釋,反正每次都會產生不同的session ID

%t

這就是時間啦,好像有一個Common Log Format可以改,不過我沒找到

%u

得到了驗證存取者,否則就是"-"

%U

訪問的URL地址,我這裡是/rightmainima/leftbott4.swf

%v

伺服器名稱,可能就是你url裡面寫的那個吧,我這裡是localhost

%D

官方解釋:Time taken to process the request, in millis,應該是訪問發生的時間,以毫秒記

%T

官方解釋:Time taken to process the request, in seconds,應該是訪問發生的時間,以秒記



common的值:%h %l %u %t %r %s %b
combined的值:%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i 

至於combined的值的最後兩個為什麼會這樣,我也不太清楚…

這就是所有的參數了,歡迎交流探討!
這是官方的解釋地址:http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html
這個也可以看一看做參考:http://tomcat.apache.org/tomcat-5.0-doc/config/logger.html
還有這個:http://tomcat.apache.org/tomcat-5.0-doc/config/host.html

Apache官方對Tomcat訪問日誌的配置介紹的並不詳細,大家可以參考Apache(web server)的訪問日誌,兩者有相當多相似的地方

                                                                                                                本文轉自hilliate 部落格

轉 Tomcat訪問日誌詳細配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.