如何配置和使用Tomcat訪問(wèn)日志
配置位置在log下的server.xml,(tomcat容器)
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve"
fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i
%{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i"
prefix="localhost_access_log." suffix=".txt"
directory="/var/log/accesslog" condition="drop"/>
<Context path="" docBase="cn_issue" debug="0"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
以下是摘抄正文
original link:http://forum.ospod.com/post-25088-1.fhtml;jsessionid=3361F472A5E12B9B9BEA1632EC50603A
Access Log Valve用來(lái)創(chuàng)建日志文件,格式與標(biāo)準(zhǔn)的web
server日志文件相同。可以使用用日志分析工具對(duì)日志進(jìn)行分析,跟蹤頁(yè)面點(diǎn)擊次數(shù)、用戶會(huì)話的活動(dòng)等。Access Log
Valve的很多配置和行為特性與File Logger相同,包括每晚午夜自動(dòng)切換日志文件。Access Log
Valve可以和任何Catalina容器關(guān)聯(lián),記錄該容器處理的所有請(qǐng)求。
例子如下:
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%{X-Forwarded-For-Pound}i %l %u %t "%r" %s %b %T
"%{HTTP_X_UP_CALLING_LINE_ID}i" "%{x-up-calling-line-id}i"
"%{User-Agent}i"" resolveHosts="false"/>
className | 實(shí)現(xiàn)的Java類名。必須被設(shè)置成org.apache.catalina.valves.AccessLogValve。
|
directory | 存放日志文件的目錄,可以是相對(duì)路徑或者絕對(duì)路徑。如果使用相對(duì)路徑,是指相對(duì)于 $CATALINA_HOME的路徑。如果不指定directory屬性,缺省值是"logs"(相對(duì)于 $CATALINA_HOME)
|
pattern | 需要記錄的請(qǐng)求/響應(yīng)不同信息域的格式布局。如果是"common"或者"combine",說(shuō)明選擇標(biāo)準(zhǔn)格式。下面會(huì)有關(guān)于配置這個(gè)屬性的更多信息。
|
prefix | 日志文件名的前綴。如果沒(méi)有指定,缺省值是"access_log."。如果不想使用前綴,使用長(zhǎng)度為0的字符串。
|
resolveHosts | 將遠(yuǎn)端主機(jī)的IP地址通過(guò)DNS查詢轉(zhuǎn)換成主機(jī)名,設(shè)為true。如果為false,忽略DNS查詢,報(bào)告遠(yuǎn)端的IP地址。
|
suffix | 日志文件名的后綴。如果沒(méi)有指定,缺省值是""。如果不想使用后綴,使用長(zhǎng)度為0的字符串。
|
rotatable | 缺省值為true,用來(lái)決定日志是否翻轉(zhuǎn)的標(biāo)志。如果為false,日志文件永遠(yuǎn)不翻轉(zhuǎn),并且忽略fileDataFormat。要謹(jǐn)慎使用。
|
condition | 打
開(kāi)條件日志。如果設(shè)置了這個(gè)屬性,只有在ServletRequest.getAttribute()是null的時(shí)候,才會(huì)為請(qǐng)求創(chuàng)建日志。比如,如果
condition設(shè)為junk,則只有在Servlet.getAttribute("junk")==null的時(shí)候,才會(huì)記錄這個(gè)請(qǐng)求。使用過(guò)濾
器,可以很容易設(shè)置(或者取消設(shè)置)不同請(qǐng)求的屬性。 |
fileDateFormat | 允許在日志文件名稱中使用定制的日期格式。日志的格式也決定了日志文件翻轉(zhuǎn)的頻率。如果想每個(gè)小時(shí)翻轉(zhuǎn)一次,將這個(gè)值設(shè)為yyyy-MM-dd.HH |
pattern屬性值由字符串常量和pattern標(biāo)識(shí)符加上前綴"%"組合而成。pattern標(biāo)識(shí)符加上前綴"%",用來(lái)代替當(dāng)前請(qǐng)求/響應(yīng)中的對(duì)應(yīng)的變量值。目前支持如下的pattern:
- %a - 遠(yuǎn)端IP地址
- %A - 本地IP地址
- %b - 發(fā)送的字節(jié)數(shù),不包括HTTP頭,如果為0,使用"-"
- %B - 發(fā)送的字節(jié)數(shù),不包括HTTP頭
- %h - 遠(yuǎn)端主機(jī)名(如果resolveHost=false,遠(yuǎn)端的IP地址)
- %H - 請(qǐng)求協(xié)議
- %l - 從identd返回的遠(yuǎn)端邏輯用戶名(總是返回 '-')
- %m - 請(qǐng)求的方法(GET,POST,等)
- %p - 收到請(qǐng)求的本地端口號(hào)
- %q - 查詢字符串(如果存在,以 '?'開(kāi)始)
- %r - 請(qǐng)求的第一行,包含了請(qǐng)求的方法和URI
- %s - 響應(yīng)的狀態(tài)碼
- %S - 用戶的session ID
- %t - 日志和時(shí)間,使用通常的Log格式
- %u - 認(rèn)證以后的遠(yuǎn)端用戶(如果存在的話,否則為'-')
- %U - 請(qǐng)求的URI路徑
- %v - 本地服務(wù)器的名稱
- %D - 處理請(qǐng)求的時(shí)間,以毫秒為單位
- %T - 處理請(qǐng)求的時(shí)間,以秒為單位
結(jié)果舉例如下:
- - - [29/Aug/2005:09:34:48 +0800] "GET
/waptest/server?productid=qqportal&actionid=index&user_type=1&station=tencent&mid=12345678908888&mobile_no=13724179457&qazxcdew=1
HTTP/1.1" 404 710 0.015 "-" "-" "Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.0) Opera 7.11 [zh-cn]"
- - - [29/Aug/2005:10:27:29 +0800] "OPTIONS / HTTP/1.1" 404 668 0.203 "-" "-" "Microsoft-WebDAV-MiniRedir/5.1.2600"
附錄:server.xml
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="80" redirectPort="8443">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" fileDateFormat="yyyy-MM-dd" pattern="%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %{x-jphone-uid}i %{x-up-subno}i" prefix="localhost_access_log." suffix=".txt" directory="/log/accesslog" condition="drop"/>
<Context path="" docBase="cn_issue" debug="0"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
posted on 2009-05-18 17:58 damoco 閱讀(3881) 評(píng)論(0) 編輯 收藏