tomcat配置參數詳解

jopen 11年前發布 | 20K 次閱讀 Tomcat 應用服務器

請打開Tomcat的配置文件server.xml,下面我們來分析下各參數的意義及用法:

 

className 

 官方文檔上說了This MUST be set to org.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,應該是訪問發生的時間,以秒記

 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!