tomcat訪問日志詳細(xì)配置教程

          Posted on 2007-12-28 22:16 傅曉風(fēng) 閱讀(7527) 評(píng)論(2)  編輯  收藏 所屬分類: Web Server

          老大說這次要分析tomcat的訪問日志,用來做用戶訪問記錄什么的,好,開干。
          可是……

          網(wǎng)上沒有多少資料
          找到Apache去,終于找到一點(diǎn)英文資料,貢獻(xiàn)于下,翻譯的不好,見諒啊

          最近需要配置tomcat訪問日志,通過造訪他人的博客,再根據(jù)apache官方的一些文章,才逐漸清晰了許多
          配置方法很簡(jiǎn)單:在server.xml里的<host>標(biāo)簽下加上
          <Valve className="org.apache.catalina.valves.AccessLogValve"
          directory="logs" prefix="localhost_access_log." suffix=".txt"
          pattern="common" resolveHosts="false"/>
          就可以了,下面咱們逐一分析各個(gè)參數(shù)。

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

          directory 
          這個(gè)東西是日志文件放置的目錄,在tomcat下面有個(gè)logs文件夾,那里面是專門放置日志文件的,當(dāng)然你也可以修改,我就給改成了D:\
          prefix 這個(gè)是日志文件的名稱前綴,我的日志名稱為localhost_access_log.2007-09-22.txt,前面的前綴就是這個(gè)localhost_access_log
          suffix 這就是后綴名啦,可以改成別的
          pattern
          這個(gè)是最主要的參數(shù)了,具體的咱們下面講,這個(gè)參數(shù)的內(nèi)容比較豐富。
          resolveHosts 如果這個(gè)值是true的話,tomcat會(huì)將這個(gè)服務(wù)器IP地址通過DNS轉(zhuǎn)換為主機(jī)名,如果是false,就直接寫服務(wù)器IP地址啦
          還有一些參數(shù):
          rotatable 默認(rèn)為true,默認(rèn)的設(shè)置使得你的tomcat生成的文件命為prefix(前綴)+.+時(shí)間(一般是按天算)+.+suffix(后綴),參照我的日志名就知道了:localhost_access_log.2007-09-22.txt
          使用這個(gè)需要謹(jǐn)慎,因?yàn)槟銓⑵湓O(shè)置為false的話,tomcat會(huì)忽略時(shí)間,不會(huì)新生成文件,最后導(dǎo)致你的文件超級(jí)大,這樣生成的文件名就是:localhost_access_log.txt
          condition 這個(gè)參數(shù)不太實(shí)用,可以設(shè)置任何值,比如咱們?cè)O(shè)置成condition="tkq",那么只有當(dāng)ServletRequest.getAttribute("tkq")為空的時(shí)候,才會(huì)被記錄下來
          fileDateFormat 最后的一個(gè)參數(shù),很明白,這就是時(shí)間格式嘛,但是這個(gè)時(shí)間格式是針對(duì)日志文件起作用的,還記得咱們生成的日志文件全名么:localhost_access_log.2007-09-22.txt,這里面的2007-09-22就是這么來的,如果你想讓tomcat每小時(shí)生成一個(gè)日志文件,也很簡(jiǎn)單,將這個(gè)值設(shè)置為:fileDateFormat="yyyy-MM-dd.HH",當(dāng)然也可以按分鐘生成什么的,自己改改吧
          上面是所有的9個(gè)參數(shù),剛才咱們說了,pattern這個(gè)參數(shù)的值比較多,咱們拿下來單獨(dú)說:
          pattern可以設(shè)置成兩種方式,第一種是pattern="common",第二種是pattern="combined"
          這就可以控制日志里面的格式,各位說了,pattern就這兩種?common和combined又是什么意思,具體是什么格式呢?
          別著急,咱們一點(diǎn)一點(diǎn)看,其實(shí)pattern是可以設(shè)置的,common和combined只是集成了一些顯示方式,就是將顯示方式給組合了,pattern的實(shí)際值有如下幾種,都是
          后面一個(gè)字母,前面一個(gè)%百分號(hào)
          咱們先貼出來我的日志里面的一條記錄,對(duì)應(yīng)著看

          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 這是記錄本地服務(wù)器的IP,在日志里是192.168.254.108
          %b
          這是發(fā)送信息的字節(jié)數(shù),不涵括http頭,如果字節(jié)數(shù)為0的話,顯示為-
          %B
          看tomcat的解釋,沒看出來與b%的區(qū)別,但我這里顯示為-1,沒想明白,望知道者告知,我把官方解釋貼出來吧 Bytes sent, excluding HTTP headers
          %h
          這個(gè)就是服務(wù)器名稱了,如果resolveHosts為false的話,這里就是IP地址了,我的日志里是127.0.0.1
          %H
          訪問者使用的協(xié)議,這里是HTTP/1.1
          %l
          這個(gè)也不太清楚,官方也說這個(gè)always return '-' 官方解釋:Remote logical username from identd (可能這樣翻譯:記錄瀏覽者進(jìn)行身份驗(yàn)證時(shí)提供的名字)(always returns '-')
          %m
          訪問的方式,是GET還是POST,我這是GET
          %p
          本地接收訪問的端口,呵呵,我這里是80啦
          %q
          比如你訪問的是aaa.jsp?bbb=ccc,那么這里就顯示?bbb=ccc,明白了吧,這個(gè)q是querystring的意思
          %r
          官方解釋:First line of the request (method and request URI),不是很明白
          %s
          這個(gè)是http的狀態(tài),我這里返回的是304,咱們經(jīng)常看見訪問某個(gè)網(wǎng)頁報(bào)錯(cuò)誤500什么的,那也會(huì)返回500
          %S
          用戶的session ID,這個(gè)session ID大家可以另外查一下詳細(xì)的解釋,反正每次都會(huì)生成不同的session ID
          %t
          這就是時(shí)間啦,好像有一個(gè)Common Log Format可以改,不過我沒找到
          %u
          得到了驗(yàn)證的訪問者,否則就是"-"
          %U
          訪問的URL地址,我這里是/rightmainima/leftbott4.swf
          %v
          服務(wù)器名稱,可能就是你url里面寫的那個(gè)吧,我這里是localhost
          %D
          官方解釋:Time taken to process the request, in millis,應(yīng)該是訪問發(fā)生的時(shí)間,以毫秒記
          %T
          官方解釋:Time taken to process the request, in seconds,應(yīng)該是訪問發(fā)生的時(shí)間,以秒記



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

          至于combined的值的最后兩個(gè)為什么會(huì)這樣,我也不太清楚…

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

          Apache官方對(duì)Tomcat訪問日志的配置介紹的并不詳細(xì),大家可以參考Apache(web server)的訪問日志,兩者有相當(dāng)多相似的地方

          Feedback

          # re: tomcat訪問日志詳細(xì)配置教程  回復(fù)  更多評(píng)論   

          2008-09-24 09:08 by ncm
          不錯(cuò) 不錯(cuò) 很詳細(xì)!支持一下

          # re: tomcat訪問日志詳細(xì)配置教程[未登錄]  回復(fù)  更多評(píng)論   

          2012-05-07 10:10 by aaron
          寫的很不錯(cuò)。謝謝分享。

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 青川县| 上饶市| 徐闻县| 平定县| 昂仁县| 西乌珠穆沁旗| 锡林郭勒盟| 巴塘县| 桐庐县| 扶沟县| 潼南县| 汉川市| 五指山市| 当雄县| 长顺县| 昭苏县| 怀仁县| 五峰| 柞水县| 阳东县| 长兴县| 霍州市| 岳普湖县| 治多县| 乳山市| 张家口市| 安多县| 永清县| 雷州市| 克拉玛依市| 巧家县| 盘锦市| 赤水市| 长治市| 富阳市| 临沭县| 柘城县| 金堂县| 都匀市| 嘉峪关市| 凤山县|