Tomcat的access log的設定及存放日誌路徑修改

來源:互聯網
上載者:User

Tomcat中預設的情況下,access log是沒有設定的。在server.xml檔案中配置如下。

[html]  view plain  copy  print ? <!-- Access log processes all example.               Documentation at: /docs/config/valve.html -->          <!--          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                   prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>          -->  
一般情況下tomcat和apache是一起使用的,apache也有access log。tomca也設定的話是不是顯得多餘。

tomcat中的access log有一個優點是session ID也列印出來了。根據session ID可以有以下便利。

1,可以根據session ID來跟蹤某個使用者的畫面操作。 

2, 如果出現錯誤的時候,可以根據session ID來再現。便於尋找出錯誤的地方。


設定非常簡單。

[html]  view plain  copy  print ? <!-- Access log processes all example.               Documentation at: /docs/config/valve.html -->          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"                   prefix="localhost_access_log." suffix=".log" pattern="common" resolveHosts="false"/>  

Tomcat中的Access Log,預設存放在logs目錄下。這個目錄會越來越大,如果訪問量大的話,很快就會把硬碟擠滿。


解決的方法有兩種:

不要記錄Access Log:注釋掉server.xml中的<Valve>配置項 把Access log存放到其他地方,然後定期壓縮歸檔:修改server.xml中<Valve>配置項中的“directory”參數,改為另外一個在大硬碟中的路徑

如果是在運行中的系統,需要多做幾步,先停止Tomcat、把Tomcat/logs中已經存在的Access Log檔案移走、修改設定檔、然後重啟Tomcat。一個具體的修改例子如下:

假設新存放路徑是/opt/logs/access_logs,檔案名稱首碼修改為xjj_access_log以免跟其他Tomcat的log混淆: cd /opt/logs mkdir access_logs vim /opt/app/tomcat-xjj/conf/server.xml 修改:directory="/opt/logs/access_logs" 修改:prefix="xjj_access_log" 停止tomcat:/opt/app/tomcat-xjj/bin/shutdown.sh 無法停止。殺死:kill -9 <pid> cd /opt/app/tomcat-xjj/logs
rename localhost_access_log xjj_access_log *.txt ( 用 尾碼.txt過濾出所有的access log檔案,並批量重新命名) mv *.txt /opt/logs/access_logs/ 重啟tomcat:/opt/app/tomcat-xjj/bin/startup.sh 

然後,如果有需要,再另外寫指令碼定期壓縮歸檔/opt/logs/access_logs中的檔案(步驟略)。
附上

pattern
pattern屬性值由字串常量和pattern標識符加上首碼"%"組合而成。pattern標識符加上首碼"%",用來代替當前請求/響應中的對應的變數值。目前支援如下的pattern:
· %a - 遠端IP地址
· %A - 本地IP地址
· %b - 發送的位元組數,不包括HTTP頭,如果為0,使用"-"
· %B - 發送的位元組數,不包括HTTP頭
· %h - 遠端主機名稱(如果resolveHost=false,遠端的IP地址)
· %H - 請求協議
· %l - 從identd返回的遠端邏輯使用者名稱(總是返回 '-')
· %m - 請求的方法(GET,POST,等)
· %p - 收到請求的本地連接埠號碼
· %q - 查詢字串(如果存在,以 '?'開始)
· %r - 請求的第一行,包含了請求的方法和URI
· %s - 響應的狀態代碼
· %S - 使用者的session ID
· %t - 日誌和時間,使用通常的Log格式
· %u - 認證以後的遠端使用者(如果存在的話,否則為'-')
· %U - 請求的URI路徑
· %v - 本機伺服器的名稱
· %D - 處理請求的時間,以毫秒為單位
· %T - 處理請求的時間,以秒為單位
運行結果


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.