配置在:/home/admin/wdetail/conf/tomcat-server.xml
開啟日志將下面內容的注釋去掉:
<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">
prefix="localhost_access_log." suffix=".log"
pattern="common" directory="${jboss.server.home.dir}/log"
resolveHosts="false" />
pattern 項的修改,可以改變日志輸出的內容。
該項值可以為: common 與 combined ,這兩個預先設置好的格式對應的日志輸出內容如下:
common 的值: %h %l %u %t %r %s %b
combined 的值: %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
pattern的格式也可以自定義:
<valve classname="org.apache.catalina.valves.AccessLogValve" <="" div="" style="word-wrap: break-word;">
prefix="localhost_access_log." suffix=".log"
pattern="%{X-Real-IP}i %a %l %u %D %t %r %s %b %{Referer}i %{User-Agent}i" directory="${jboss.server.home.dir}/../logs" resolveHosts="false" />
這里log的路徑可以更改:directory="${jboss.apphome.dir}/logs"
jboss.apphome.dir這個變量必須要到jbossctl里去定義,加到JAVA_OPTS里面去:
JAVA_OPTS="${JAVA_OPTS} -Djboss.apphome.dir=$BASE_HOME"
碰到問題,jboss記錄的ip不是真實ip,需要在nginx上配置下:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
pattern的詳細說明
http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html
%a 遠端IP
%A 本地IP
%b 發送的字節數,不包含HTTP頭,如果為0,使用”-”
%B 發送的字節數,不包含HTTP頭
%h 遠端主機名(如果resolveHosts=false),遠端的IP
%H 請求協議
%l 從identd返回的遠端邏輯用戶名,總是返回’-’
%m 請求的方法
%p 收到請求的本地端口號
%q 查詢字符串
%r 請求的第一行
%s 響應的狀態碼
%S 用戶的sessionID
%t 日志和時間,使用通常的log格式
%u 認證以后的遠端用戶(如果存在的話,否則為’-’)
%U 請求的URI路徑
%v 本地服務器的名稱
%D 處理請求的時間,以毫秒為單位
%T 處理請求的時間,以秒為單位
參數/選項說明:
className: 實現的java類名,必須設置成org.apache.catalina.valves.AccessLogValve;
directory: 存放日志文件的目錄;
pattern: 需要記錄的日志信息的格式布局,如果是”common”或者”combined”,說明是使用的標准記錄格式,也有自定義的格式,下面會詳細說明;
prefix: 日志文件名的前綴,如果沒有指定,缺省值是”access_log.;(要注意后面有個小點);
resolveHosts: 將遠端主機的IP通過DNS查詢轉換成主機名,設為true。如果為false,忽略DNS查詢,報告遠端主機的IP地址;
sufix: 日志文件的后綴名。(sufix=”.log”);也需要注意有個小點;
rotatable: 缺省值為true,決定日志是否要翻轉,如果為false則永不翻轉,並且忽略fileDateFormat,謹慎使用。
condition: 打開條件日志
fileDateFormat:允許在日志文件名稱中使用定制的日期格式。日志的格式也決定了日志文件翻轉的頻率。
如果想每小時翻轉一次,可以定義為“yyyy-MM-dd.HH”;