tomcat日誌配置之一自帶log

xz43發表於2016-03-07

問題

tomcat每次啟動時,自動在logs目錄下生產以下日誌檔案,且每天都會生成對應日期的一個檔案,造成日誌檔案眾多:

     localhost.2012-07-05.txt

     catalina.2012-07-05.txt

     manager.2012-07-05.txt

     host-manager.2012-07-05.txt

目的

     Tomcat以上日誌都輸出到同一個檔案中。


修改步驟

     開啟Tomcat目錄conf\logging.properties,修改如下,所有日誌輸出到tomcat開頭的檔案中



1catalina.org.apache.juli.FileHandler.level = FINE

1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

# 1catalina.org.apache.juli.FileHandler.prefix = catalina.

1catalina.org.apache.juli.FileHandler.prefix = tomcat.


2localhost.org.apache.juli.FileHandler.level = FINE

2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

# 2localhost.org.apache.juli.FileHandler.prefix = localhost.

2localhost.org.apache.juli.FileHandler.prefix = tomcat.


3manager.org.apache.juli.FileHandler.level = FINE

3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

# 3manager.org.apache.juli.FileHandler.prefix = manager.

3manager.org.apache.juli.FileHandler.prefix = tomcat.


4host-manager.org.apache.juli.FileHandler.level = FINE

4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

# 4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

4host-manager.org.apache.juli.FileHandler.prefix = tomcat.



Tomcat日誌總結


1 Tomcat 日誌資訊分為兩類 :

一是執行中的日誌,它主要記錄執行的一些資訊,尤其是一些異常錯誤日誌資訊 。

二是訪問日誌資訊,它記錄的訪問的時間,IP ,訪問的資料等相關資訊。


2 訪問日誌的配置

2.1 預設 tomcat 不記錄訪問日誌,如下方法可以使 tomcat 記錄訪問日誌

編輯 ${catalina}/conf/server.xml 檔案. 注 :${catalina} 是 tomcat 的安裝目錄

把以下的註釋 () 去掉即可。

 <!--

        <Valve className="org.apache.catalina.valves.AccessLogValve"

         directory="logs"  prefix="localhost_access_log." suffix=".txt"

         pattern="common" resolveHosts="false"/>

  -->

2.2 配置tomcat 寫出更詳細的日誌

透過對 2.1 示例中 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 也可以根據需要自由組合, 例如 pattern="%h %l"


對於各fields欄位的含義請參照 :

中的 Access Log Valve 項


3 修改Tomcat執行日誌的等級

3.1  日誌型別與級別

Tomcat 日誌分為下面5類:

catalina 、 localhost 、 manager 、 admin 、 host-manager

每類日誌的級別分為如下 7 種:

SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value)

3.2  日誌級別的設定方法

修改 conf/logging.properties 中的內容,設定某類日誌的級別

示例:


設定 catalina 日誌的級別為: FINE

1catalina.org.apache.juli.FileHandler.level = FINE


禁用 catalina 日誌的輸出:

1catalina.org.apache.juli.FileHandler.level = OFF


輸出 catalina 所有的日誌訊息均輸出:

1catalina.org.apache.juli.FileHandler.level = ALL

因為file.encoding預設的字符集跟作業系統有關,中文作業系統下面預設的字符集是GBK,如果日誌傳輸中用UTF-8,則不能正確轉換,所以需要修改file.encoding的值為UTF-8。

部署在tomcat中的檔案要修改file.encoding的值,可以在tomcat的catalina.bat檔案中set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%的後面加上 -Dfile.encoding="UTF-8"

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-2050440/,如需轉載,請註明出處,否則將追究法律責任。

相關文章