tomcat access 日志詳解


配置在:/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”;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM