1.Tomcat的日志(./tomca/logs/) 分為5類,這里面 1和5比較重要
1.catalina.2017-06-14.log 或者 catalina.out: 引擎的日志文件 2.host-manager.2017-06-14.log : tomcat的自帶的manager項目的日志信息 3.localhost.2017-06-14.log : Tomcat下內部代碼丟出的日志 4.manager.2017-06-14.log : 默認manager應用日志 5.localhost_access_log.2017-06-14.log: 客戶端訪問日志
2.每類日志的級別分為如下 7 種:
SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)
日志級別的設定方法,修改 conf/logging.properties 中的內容,設定某類日志的級別
1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix = localhost. 3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager.
示例:
禁用 catalina 日志的輸出:1catalina.org.apache.juli.FileHandler.level = OFF
輸出 catalina 所有的日志消息均輸出:1catalina.org.apache.juli.FileHandler.level = ALL
3.1客戶訪問日志的配置
<!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
className:官方文檔上說了This MUST be set to ‘org.apache.catalina.valves.AccessLogValve’
to use the default access log valve. 配置訪問日志,這就必須得寫成這樣。
directory:這個東西是日志文件放置的目錄
prefix: 這個是日志文件的名稱前綴
suffix: 后綴名
pattern: 格式
resolveHosts:true的話,tomcat會將IP地址通過DNS轉換為主機名,如果是false,就直接寫服務器IP地址
3.2pattern 參數
pattern可以設置成兩種集成好的方式,
第一種是pattern="common"
第二種是pattern="combined"
common 的值: %h %l %u %t %r %s %b combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
至於combined的值的最后兩個:
%{Referer}i:從那個頁面鏈接跳轉到的此頁面
%{User-agent}i:用戶的User-Agent
pattern 也可以根據需要自由 組 合 , 例如 pattern="%h %l"
%a 這是記錄訪問者的IP,在日志里是127.0.0.1 %A 這是記錄本地服務器的IP,在日志里是192.168.254.108 %b 這是發送信息的字節數,不涵括http頭,如果字節數為0的話,顯示為- %B 看tomcat的解釋,沒看出來與b%的區別望告知,我把官方解釋貼出來吧 Bytes sent, excluding HTTP headers(發送的字節數,不包括HTTP頭) %h 遠端主機名(如果resolveHost=false,遠端的IP地址) %H 訪問者使用的協議,這里是HTTP/1.1 %l 官方說這個always return '-' 官方解釋:Remote logical username from identd
(可能這樣翻譯:記錄瀏覽者進行身份驗證時提供的名字){從identd返回的遠端邏輯用戶名(總是返回 '-')};
%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)——請求的第一行,包含了請求的方法和URI %s 這個是響應http的狀態碼,這里返回的是304,咱們經常看見訪問某個網頁報錯誤500什么的,那也會返回500 %S 用戶的session ID,這個session ID大家可以另外查一下詳細的解釋,反正每次都會生成不同的session ID %t 日志和時間,使用通常的Log格式 %u 認證以后的遠端用戶(如果存在的話,否則為'-') %U 請求訪問的URL地址,我這里是/seces/commonService?wsdl %v 本地服務器名稱,可能就是你url里面寫的那個吧,我這里是localhost %D 官方解釋:Time taken to process the request, in millis,處理請求的時間,以毫秒為單位 %T 官方解釋:Time taken to process the request, in seconds,處理請求的時間,以秒為單位
這里有個實例:( " 這是雙引號的意思)
%h %l %u %t "%r" %s %b 10.0.7.15 - - [07/Jun/2018:08:42:18 +0800] "POST /IyunshuAppTest/suppliers/selectSupp_Biaoti HTTP/1.1" 200 322