日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat 6.0 日志处理

發布時間:2025/7/14 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat 6.0 日志处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

本文主要講的是 Tomcat 自己本身對日志的處理,而非每個 webapp 的日志配置(現在 webapp 一般會獨立配置日志)。

內容基本上來自官方文檔:http://tomcat.apache.org/tomcat-6.0-doc/logging.html

一、Webapp 記錄日志的方法

Tomcat 中的 webapp 有三種方法記錄日志:

  • 使用 java.util.logging
  • 使用 Servlet 標準中的日志記錄方法 javax.servlet.ServletContext.log(...)
  • 使用任意其它的日志框架(例如 Log4j)

一般來說,每個 webapp 使用的日志框架都是獨立的,不會影響其他 webapp。但如果用的是 Java 原生的 java.util.logging,由于它是通過系統加載的,因此各個 webapp 之間會共享同一個日志配置。

二、什么是 JULI

Tomcat 默認會使用 java.util.logging (JUL) 日志框架,但重寫了一些實現,以解決一個 JVM 中 JUL 只能使用一個配置文件的問題,滿足多個 webapp 獨立配置日志的需求。這個實現就叫 JULI (['d?u:li])。

全局日志配置

  • 默認使用 ${catalina.base}/conf/logging.properties,這個路徑在 Tomcat 啟動腳本中通過 java.util.logging.config.file 系統屬性指定
  • 如果上述默認配置文件不可用(不存在或無權限讀取),則使用 JRE 中的 ${java.home}/lib/logging.properties

webapp 獨立日志配置

  • JULI 支持每個 ClassLoader (也就是每個 webapp) 使用自己的日志配置,配置文件位于 {webapp]/WEB-INF/classes/logging.properties

控制臺

  • 在 Linux 上運行 Tomcat 時,控制臺的輸出 (System.err/out) 同時會被保存到文件 catalina.out 中,這個名稱是通過運行腳本指定的
  • 在 Windows 上,如果以服務的形式運行 Tomcat,也會將控制臺輸出保存到文件(文檔沒說文件名是什么。。。),如果不以服務的形式運行,則不會保存控制臺輸出

三、JULI 對 JUL 的擴展

  • 配置文件中能通過 ${systemPropertyName} 的格式使用系統屬性
  • Handler
    • JUL 中,handler 名稱即為類的完整限定名,一個類只能創建一個 handler。而 JULI 的 handler 名稱可以在類的完整限定名之前加前綴,該前綴以數字開頭,以 . 結尾(注意中間不能出現 .),例如 5portallocal.
    • JULI 定義一些 handler 類,例如 org.apache.juli.FileHandler,支持緩沖。
  • Logger
    • 每個 logger 可以指定多個 handler(Java 6 的 JUL 開始支持)
    • root logger 可以使用 .handler 指定 handler:
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].useParentHandlers = true
    • 注意,如果一個 logger 已經指定了 handler,則默認不會將日志傳遞給上級 logger,但可以通過 useParentHandlers 修

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].useParentHandlers = true

四、生產環境中的注意事項

  • root logger 默認配置了 FileHandler 和 ConsoleHandler,而控制臺輸出一般又被保存到文件中,導致相同的日志被保存了2份,可以考慮將 ConsoleHandler 從 root logger 中去除。
  • 刪除沒必要的 handler,例如 host-manager 的。
  • handler 默認使用系統默認編碼,可以考慮顯式指定編碼。
  • 考慮配置 access log,可參考 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve

五、其它

Tomcat 也能配置為使用 Log4j 代替 JULI 來處理日志,詳見 http://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_Log4j

轉載于:https://my.oschina.net/reniaL/blog/57406

總結

以上是生活随笔為你收集整理的Tomcat 6.0 日志处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。