黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Tomca教程
Tomcat Manager
Tomcat Realm 配置
Tomcat 安全管理
Tomcat JNDI 資源
Tomcat JDBC 數(shù)據(jù)源
Tomcat 類加載機制
Tomcat JSPs
Tomcat SSL/TLS配置
Tomcat SSI
Tomcat CGI
Tomcat 代理支持
Tomcat MBean 描述符
Tomcat 默認 Servlet
Tomcat 集群
Tomcat 連接器
Tomcat監(jiān)控與管理
Tomcat 日志機制
Tomcat 基于 APR 的原生庫
Tomcat 虛擬主機
Tomcat 高級 IO 機制
Tomcat 附加組件
Tomcat 安全性注意事項
Tomcat Windows 服務
Tomcat Windows 認證
Tomcat 的 JDBC 連接池
Tomcat WebSocket 支持
Tomcat 重寫機制

Tomcat日志機制

Tomcat日志機制簡介

Tomcat 的內(nèi)部日志使用 JULI 組件,這是一個 Apache Commons 日志的重命名的打包分支,默認被硬編碼,使用 java.util.logging 架構。這能保證 Tomcat 內(nèi)部日志與 Web 應用的日志保持獨立,即使 Web 應用使用的是 Apache Commons Logging。

假如想用另外的日志框架來替換 Tomcat 的內(nèi)部日志系統(tǒng),那么就必須采用一種能夠保持完整的 Commons 日志機制的 JULI 實現(xiàn),用它來替換通過硬編碼使用 java.util.logging 的 JULI 實現(xiàn)。通常這種替代實現(xiàn)都是以額外組件的形式出現(xiàn)的。利用 Log4j 框架用于 Tomcat 內(nèi)部日志的配置如下文所示。

在 Apache Tomcat 上運行的 Web 應用可以使用:

  • 任何自選的日志框架。
  • 系統(tǒng)日志 API,java.util.logging。
  • Java Servlets 規(guī)范所提供的日志 API,javax.servlet.ServletContext.log(...)。

各個應用可以使用不同的日志框架,詳情參見類加載器。java.util.logging 則是例外。如果日志庫直接或間接地用到了這一 API,那么 Web 應用就能共享使用它的元素,因為該 API 是由系統(tǒng)類加載器所加載的。

Java 日志 API——java.util.logging

Apache Tomcat 本身已經(jīng)實現(xiàn)了 java.util.logging API 的幾個關鍵元素。這種實現(xiàn)就是 JULI。其中的關鍵組件是一個自定義的 LogManager 實現(xiàn),它能分辨運行在 Tomcat 上的不同 Web 應用(以及它們所用的不同的類加載器),還能針對每一應用進行私有的日志配置。另外,當 Web 應用沒能從內(nèi)存中加載時,Tomcat 會給予它相應通知,從而清除相應的引用類,防止內(nèi)存泄露。

在啟動 Java 時,通過提供特定的系統(tǒng)屬性,可以啟用 java.util.logging 實現(xiàn)。Apache Tomcat 啟動腳本可以實現(xiàn)這個操作,但如果使用不同工具來運行 Tomcat(比如 jsvc,或者從某個 IDE 中運行 Tomcat),就必須自己來啟用實現(xiàn)。

關于 java.util.logging 實現(xiàn)的詳細情況可以查閱 JDK 文檔,具體位于 java.util.logging 包的相關 javadoc 頁面中。

關于 Tomcat JULI 的詳細介紹見下文。

Servlets logging API

Tomcat 內(nèi)部日志能夠處理對 javax.servlet.ServletContext.log(...) 的調(diào)用,從而寫入日志消息。這種消息都被記錄到一種特定類別中,命名方式如下:

org.apache.catalina.core.ContainerBase.[${engine}].[${host}].[${context}]

這種日志是依照 Tomcat 日志配置而執(zhí)行的,無法在 Web 應用中重寫。

Servlets logging API 的問世要先于 Java 所提供的 java.util.logging API,所以,它無法提供太多的選項,比如無法用它來控制日志級別。然而需要注意的是,在 Tomcat 實現(xiàn)中, 對 ServletContext.log(String) 和 GenericServlet.log(String) 的調(diào)用都被記錄在 INFO 級別。對 ServletContext.log(String, Throwable) 或 GenericServlet.log(String, Throwable) 的調(diào)用都被記錄在 ERROR 級別。

Console

在 UNIX 系統(tǒng)下運行 Tomcat 時,控制臺輸出經(jīng)常會重定向到 catalina.out 的文件中。通過一個環(huán)境變量,可以配置該文件(參見啟動腳本)。

寫入 System.err/out 的任何內(nèi)容都會被 catalina.out 文件所捕獲。這些內(nèi)容可能包括:

  • 由 java.lang.ThreadGroup.uncaughtException(..) 所輸出的未捕獲異常。
  • 線程轉儲,如果通過系統(tǒng)信號來請求它們。

在 Windows 上以服務形式運行時,控制臺輸出也會被捕獲及重定向,但文件名有所不同。

Tomcat 默認的日志配置會將同樣的消息寫入控制臺和一個日志文件中。這一特點非常有利于使用 Tomcat 進行開發(fā),但往往并不適用于生產(chǎn)環(huán)境。

老的應用可能還在使用 System.out 或 System.err,可以通過在 Context 元素上設置 swallowOutput 屬性來調(diào)整。如該屬性設為 true,那么在請求階段對 System.out/err 的調(diào)用就會被攔截,它們的輸出也會通過 javax.servlet.ServletContext.log(...) 調(diào)用反饋給日志系統(tǒng)。

注意:swallowOutput 雖然是一個小技巧,但還是有局限性的:它需要直接調(diào)用 System.out/err,并且要在請求處理周期內(nèi)完成。而且,它可能還并不適用于應用所創(chuàng)建的其他線程。不能將其用于攔截本身寫入系統(tǒng)流的日志框架(它們可能早先已經(jīng)啟動,并且在重定向發(fā)生前就已經(jīng)獲取了對流的直接引用)。

Acces 日志

Access 日志功能相近,但還是有所不同。它是一個 Valve,使用自包含的邏輯來編寫日志文件。訪問日志的基本需求是以較低開銷處理大型連續(xù)數(shù)據(jù)流,所以只能使用 Commomns Logging 來處理自身的調(diào)試消息。這種實現(xiàn)方法避免了額外的開銷,并且可能具有較復雜的配置。請參考 Valves 文檔了解更多配置詳情,其中包含了各種報告格式。

全部教程
主站蜘蛛池模板: 香蕉免费在线视频 | 1024你懂的国产在线播放 | 最新欧美精品一区二区三区 | 国产aaaaaa| 亚洲欧美韩国日产综合在线 | 欧美三区在线观看 | 欧美成人免费公开播放 | 草比片 | 性大特级毛片视频 | 五月婷婷中文字幕 | 久久精品伊人波多野结 | 成年人网站免费 | 特级xxxxx欧美 | 亚洲伦理剧 | a视频免费在线 | 全日本爽视频在线 | 国产成人 免费观看 | 2015日韩永久免费视频播放 | 五月婷中文字幕 | 波多野结衣一区2区3区 | 成年男女免费视频观看性 | 大学生高清一级毛片免费 | 香蕉视频黄色片 | 亚洲最黄网站 | 久久久久国产精品免费免费 | 欧美成a人免费观看 | 奇米影视一区二区三区 | 日本xx13一18处交高清 | 日本一区中文字幕 | 国产精品福利久久2020 | 国产高清一级毛片在线不卡 | 色噜噜狠狠色综合欧洲 | 天天摸天天爽视频69视频 | 天天天天添天天拍天天谢 | 制服诱惑中文字幕 | 看全色黄大色黄大片女图片第一次 | 国产精品久久精品视 | 青青青青久久精品国产h | 久久天天躁狠狠躁夜夜免费观看 | 黄网站视频 | 一本大道道无香蕉综合在线 |