大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

使用 java.util.logging(默認)

JDK 所提供的默認 java.util.logging 實現功能太過局限,所以根本沒有什么使用價值。其關鍵局限在于不能實現針對每一應用進行日志記錄,因為配置是針對每一 VM 的。所以按照默認配置,Tomcat 會用 JULI 這種非常適用于容器的實現來代替默認的 LogManager 實現,從而避免了 LogManager 的缺點。

跟標準 JDK 的 java.util.logging 一樣,JULI 也支持同樣的配置機制,或者使用編程方式,或者指定屬性值。它與 java.util.logging 的不同在于,它可以分別設置每一個類加載器屬性文件(能夠啟用簡單的、便于重新部署的應用配置),屬性文件還支持擴展構造,能夠更加自由地定義 handle 并將其指定給 logger。

JULI 是默認啟用的,除了普通的全局 java.util.logging 配置之外,它支持每個類加載器配置。這意味著可以在下列層級來配置日志:

  • 全局范圍。${catalina.base}/conf/logging.properties 文件。該文件通過由啟動腳本設置的系統屬性 java.util.logging.config.file 來指定。如果它不可讀或沒有配置,默認采用 JRE 中的 ${java.home}/lib/logging.properties 文件。
  • 在 Web 應用范圍內。該文件為 WEB-INF/classes/logging.properties。

JRE 中默認的 logging.properties 指定了 ConsoleHandler,用于將日志輸出至 System.err。Tomcat 中默認的 conf/logging.properties 也添加了幾個能夠寫入文件的 FileHandlers。

handler 的日志級別容差值默認為 INFO,取值范圍為:SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST 或 ALL。你也可以從特殊的包中收集日志,然后為這種日志指定相應的級別。

為了啟用 部分 Tomcat 內部的調試日志功能,應該配置適合的 logger 和 handle 來使用 FINEST 或 ALL 級別。比如:

org.apache.catalina.session.level=ALLjava.util.logging.ConsoleHandler.level=ALL

當啟用調試日志功能時,建議將范圍盡量縮小,因為該功能會產生大量信息。

JULI 所使用的配置與純 java.util.logging 所支持的配置基本相同,只不過使用了一些擴展,以便更靈活地配置 logger 和 handler。主要的差別在于:

  • handler 名稱前可以加上前綴,所以同一類可以實例化出多個 handler。前綴是一個以數字開頭的字符串,并以 . 結尾。比如 22foobar. 就是個有效的前綴。
  • 系統屬性

還有一些額外的實現類,它們可以與 Java 所提供的類一起使用。在這些類中,最著名的就是 org.apache.juli.FileHandler。

org.apache.juli.FileHandler 支持日志緩存。日志緩存默認是沒有啟用的。使用 handler 的 bufferSize 屬性可以配置它:屬性值為 0 時,代表使用系統默認的緩存(通常使用 8k 緩存);屬性值小于 0 時,將在每個日志寫入上強制使用 writer flush(將緩存區中的數據強制寫出到系統輸出)功能;屬性值大于 0 時,則使用帶有定義值的 BufferedOutputStream 類——但要注意的是,這也將應用于系統默認的緩存。

以下是一個 $CATALINA_BASE/conf 中的 logging.properties 文件:

handlers = 1catalina.org.apache.juli.FileHandler, \
           2localhost.org.apache.juli.FileHandler, \
           3manager.org.apache.juli.FileHandler, \
           java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################# Handler specific properties.# Describes specific configuration info for Handlers.############################################################
1catalina.org.apache.juli.FileHandler.level = FINE1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs1catalina.org.apache.juli.FileHandler.prefix = catalina.
2localhost.org.apache.juli.FileHandler.level = FINE2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs3manager.org.apache.juli.FileHandler.prefix = manager.3manager.org.apache.juli.FileHandler.bufferSize = 16384
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
############################################################# Facility specific properties.# Provides extra control for each logger.############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \
   2localhost.org.apache.juli.FileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = \
   3manager.org.apache.juli.FileHandler
# For example, set the org.apache.catalina.util.LifecycleBase logger to log# each component that extends LifecycleBase changing state:#org.apache.catalina.util.LifecycleBase.level = FINE

下例是一個用于 servlet-examples 應用的 WEB-INF/classes 中的 logging.properties 文件:

handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################# Handler specific properties.# Describes specific configuration info for Handlers.############################################################

org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = ${classloader.webappName}.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

1. 文檔引用

查看下列資源獲取額外的詳細信息:

  • org.apache.juli 包的相關 Tomcat 文檔。
  • java.util.logging 包的 Oracle Java 6 文檔。

2. 生產環境使用中的注意事項

可能需要注意以下方面:

  • 將 ConsoleHandler 從配置中移除。默認(多謝 .handlers 設置)日志會使用 FileHandler 和 ConsoleHandler。后者的輸出經常會被捕獲到一個文件中,比如 catalina.out。從而導致同一消息可能生成了兩個副本。
  • 對于不使用的應用(比如 host-manager),可以考慮將 FileHandlers 移除。
  • handler 默認使用系統缺省編碼來寫入日志文件,通過 encoding 屬性可以修改設置,詳情查看相關的 javadoc 文檔。
  • 配置 Access log 。
全部教程
主站蜘蛛池模板: 亚洲大片免费观看 | 亚洲精品国产精品精 | 久久99精品久久久久久水蜜桃 | 天天做夜夜做久久做狠狠 | 精品国产91久久久久久久a | 国产精品高清久久久久久久 | 欧美亚洲综合在线观看 | 日韩国产欧美精品综合二区 | 国产人成精品综合欧美成人 | 在线欧美激情 | 日一区二区 | 永久免费精品影视网站 | 国产小福利 | 久久资源总站 | 亚洲精品亚洲人成在线播放 | 成人影院一区二区三区 | 免费国产成人高清在线观看视频 | 欧美乱妇高清无乱码视频在线 | 亚洲高清不卡视频 | 精品一久久 | 伊人激情久久综合中文字幕 | 久热网站| 亚洲一区免费在线观看 | 久久国产亚洲 | 经典邵氏三级 在线观看 | 麻豆国产96在线 | 中国 | 亚洲va久久久久综合 | 92国产福利久久青青草原 | 亚洲成人伊人网 | 久久国产精品成人免费 | 人人干天天干 | 国产亚洲人成a在线v网站 | 黄色成人在线播放 | 国产精品免费精品自在线观看 | 日本xxx高清免费视频 | 91精品久久久久含羞草 | 99久久99热久久精品免费 | 国产精品伦一区二区三级视频 | 九九热观看视频 | 91精品视频在线免费观看 | 欧美巨大video粗暴 |