国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

web server apache tomcat11-22-logging 日志

這篇具有很好參考價(jià)值的文章主要介紹了web server apache tomcat11-22-logging 日志。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。

開源項(xiàng)目

從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。

系列文章

web server apache tomcat11-01-官方文檔入門介紹

web server apache tomcat11-02-setup 啟動

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

web server apache tomcat11-11-Jasper 2 JSP Engine

web server apache tomcat11-12-SSL/TLS Configuration

web server apache tomcat11-13-SSI

web server apache tomcat11-14-CGI

...

簡介

Apache Tomcat 的內(nèi)部日志記錄使用了 JULI,這是 Apache Commons Logging 的打包重命名分支,被硬編碼為使用 java.util.logging 框架。這確保了 Tomcat 的內(nèi)部日志記錄和任何 Web 應(yīng)用程序日志記錄保持獨(dú)立,即使一個(gè) Web 應(yīng)用程序使用了 Apache Commons Logging。

要配置 Tomcat 使用替代的日志記錄框架進(jìn)行內(nèi)部日志記錄,請按照替代日志記錄框架提供的指令,重定向使用 java.util.logging 的應(yīng)用程序的日志記錄。請注意,替代的日志記錄框架需要能夠在存在不同類加載器中具有相同名稱的不同記錄器的環(huán)境中工作。

在 Apache Tomcat 上運(yùn)行的 Web 應(yīng)用程序可以:

  • 使用任何其選擇的日志記錄框架。
  • 使用系統(tǒng)日志記錄 API,java.util.logging。
  • 使用由 Java Servlets 規(guī)范提供的日志記錄 API,jakarta.servlet.ServletContext.log(...)

不同 Web 應(yīng)用程序使用的日志記錄框架是獨(dú)立的。有關(guān)更多詳情,請參閱類加載。唯一的例外是 java.util.logging。如果您的日志記錄庫直接或間接地使用了它,那么它的某些元素將在 Web 應(yīng)用程序之間共享,因?yàn)樗怯上到y(tǒng)類加載器加載的。

Java 日志記錄 API — java.util.logging

Apache Tomcat 具有 java.util.logging API 的幾個(gè)關(guān)鍵元素的自己的實(shí)現(xiàn)。這個(gè)實(shí)現(xiàn)被稱為 JULI。其中的關(guān)鍵組件是一個(gè)自定義的 LogManager 實(shí)現(xiàn),它了解正在 Tomcat 上運(yùn)行的不同 Web 應(yīng)用程序(及其不同的類加載器)。它支持每個(gè)應(yīng)用程序私有的日志記錄配置。它還在 Web 應(yīng)用程序從內(nèi)存中卸載時(shí)受到 Tomcat 的通知,以便清除對其類的引用,防止內(nèi)存泄漏。

當(dāng)啟動 Java 時(shí),通過提供特定的系統(tǒng)屬性來啟用此 java.util.logging 實(shí)現(xiàn)。Apache Tomcat 的啟動腳本會為您執(zhí)行此操作,但如果您使用不同的工具來運(yùn)行 Tomcat(如 jsvc,或在 IDE 中運(yùn)行 Tomcat),則應(yīng)自行處理它們。

有關(guān) java.util.logging 的更多詳細(xì)信息可在 JDK 的文檔和其 java.util.logging 包的 Javadoc 頁面中找到。

Servlets 日志記錄 API

對 jakarta.servlet.ServletContext.log(...) 的調(diào)用來寫日志消息是由內(nèi)部的 Tomcat 日志記錄處理的。這樣的消息被記錄到名為

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

的類別中。此日志記錄根據(jù) Tomcat 日志記錄配置執(zhí)行。您無法在 Web 應(yīng)用程序中覆蓋它。

Servlets 日志記錄 API 早于現(xiàn)在由 Java 提供的 java.util.logging API。因此,它并不提供太多選項(xiàng)。例如,您無法控制日志級別。不過,可以注意到,在 Apache Tomcat 實(shí)現(xiàn)中,對 ServletContext.log(String) 或 GenericServlet.log(String) 的調(diào)用是以 INFO 級別記錄的。對 ServletContext.log(String, Throwable) 或 GenericServlet.log(String, Throwable) 的調(diào)用是以 SEVERE 級別記錄的。

控制臺

在 Unix 上運(yùn)行 Tomcat 時(shí),控制臺輸出通常會重定向到名為 catalina.out 的文件中。該名稱可使用環(huán)境變量進(jìn)行配置。(參見啟動腳本)。所有寫入到 System.err/out 的內(nèi)容都將被捕獲到該文件中。這可能包括:

  • 由 java.lang.ThreadGroup.uncaughtException(...) 打印的未捕獲異常
  • 如果通過系統(tǒng)信號請求了線程轉(zhuǎn)儲,則線程轉(zhuǎn)儲

在 Windows 上作為服務(wù)運(yùn)行時(shí),控制臺輸出也會被捕獲和重定向,但文件名不同。

Apache Tomcat 中的默認(rèn)日志記錄配置將相同的

消息寫入控制臺和日志文件。這在開發(fā)時(shí)使用 Tomcat 時(shí)非常方便,但在生產(chǎn)環(huán)境中通常是不需要的。

仍在使用 System.out 或 System.err 的舊應(yīng)用程序可以通過在 Context 上設(shè)置 swallowOutput 屬性來欺騙。如果將屬性設(shè)置為 true,則在請求處理過程中對 System.out/err 的調(diào)用將被攔截,并將其輸出通過 jakarta.servlet.ServletContext.log(...) 調(diào)用饋送到日志子系統(tǒng)中。
請注意,swallowOutput 功能實(shí)際上是一個(gè)技巧,它有其局限性。它僅適用于對 System.out/err 的直接調(diào)用,并且僅在請求處理周期中起作用。它可能無法攔截由應(yīng)用程序創(chuàng)建的其他線程中的日志記錄框架。它不能用于攔截那些自己寫入系統(tǒng)流的日志記錄框架,因?yàn)樗鼈冊缭谥囟ㄏ虬l(fā)生之前就開始,并且可能直接獲得對流的引用。

訪問日志記錄

訪問日志記錄是一個(gè)相關(guān)但不同的功能,它作為一個(gè)閥門實(shí)現(xiàn)。它使用自包含的邏輯來寫入其日志文件。訪問日志記錄的基本要求是處理大量連續(xù)數(shù)據(jù)而不增加太多開銷,因此它僅使用 Apache Commons Logging 用于自身的調(diào)試消息。這種實(shí)現(xiàn)方法避免了額外的開銷和潛在的復(fù)雜配置。有關(guān)其配置的更多詳細(xì)信息,請參閱閥門文檔,其中包括各種報(bào)告格式。

使用 java.util.logging(默認(rèn))

JDK 提供的 java.util.logging 的默認(rèn)實(shí)現(xiàn)過于受限,以至于無法使用。關(guān)鍵限制是無法實(shí)現(xiàn)每個(gè) Web 應(yīng)用程序的日志記錄,因?yàn)榕渲檬腔?VM 的。因此,在默認(rèn)配置下,Tomcat 將替換默認(rèn)的 LogManager 實(shí)現(xiàn)為一個(gè)容器友好型的實(shí)現(xiàn),稱為 JULI,它解決了這些缺陷。

JULI 支持與標(biāo)準(zhǔn) JDK java.util.logging 相同的配置機(jī)制,使用編程方法或?qū)傩晕募?。主要區(qū)別在于可以設(shè)置每個(gè)類加載器屬性文件(這樣就可以輕松地重新部署友好的 Web 應(yīng)用程序配置),并且屬性文件支持?jǐn)U展結(jié)構(gòu),允許更自由地定義處理程序并將其分配給記錄器。

JULI 默認(rèn)啟用,并支持每個(gè)類加載器配置,除了常規(guī)的全局 java.util.logging 配置之外。這意味著日志記錄可以在以下層次進(jìn)行配置:

  • 全局配置。通常在 ${catalina.base}/conf/logging.properties 文件中完成。該文件由 java.util.logging.config.file 系統(tǒng)屬性指定,該屬性由啟動腳本設(shè)置。如果該文件不可讀或未配置,則默認(rèn)使用 JRE 中的 ${java.home}/lib/logging.properties 文件。
  • 在 Web 應(yīng)用程序中。該文件將是 WEB-INF/classes/logging.properties

JRE 中的默認(rèn) logging.properties 指定了一個(gè) ConsoleHandler,將日志路由到 System.err。Apache Tomcat 中默認(rèn)的 conf/logging.properties 還添加了幾個(gè) AsyncFileHandler,用于寫入文件。

處理程序的日志級別閾值默認(rèn)為 INFO,可以使用 SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST 或 ALL 進(jìn)行設(shè)置。您還可以針對特定的包來收集日志,并指定一個(gè)級別。

要為 Tomcat 的部分內(nèi)部啟用調(diào)試日志記錄,應(yīng)同時(shí)配置適當(dāng)?shù)挠涗浧骱瓦m當(dāng)?shù)奶幚沓绦?,以使?FINEST 或 ALL 級別。例如:

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

在啟用調(diào)試日志記錄時(shí),建議將其限制在可能的最窄范圍內(nèi),因?yàn)檎{(diào)試日志記錄可能會產(chǎn)生大量信息。

JULI 使用的配置與純 java.util.logging 支持的配置

相同,但使用了一些擴(kuò)展,以便更好地靈活地配置記錄器和處理程序。主要的區(qū)別包括:

  • 可以向處理程序名稱添加前綴,以便可以實(shí)例化單個(gè)類的多個(gè)處理程序。前綴是一個(gè)以數(shù)字開頭、以 '.' 結(jié)尾的字符串。例如,22foobar. 是一個(gè)有效的前綴。
  • 對于包含 ${systemPropertyName} 的屬性值,將執(zhí)行系統(tǒng)屬性替換。
  • 如果使用實(shí)現(xiàn)了 org.apache.juli.WebappProperties 接口的類加載器(Tomcat 的 Web 應(yīng)用程序類加載器會這樣做),則還會對 ${classloader.webappName}、${classloader.hostName} 和 ${classloader.serviceName} 進(jìn)行屬性替換,分別替換為 Web 應(yīng)用程序名稱、主機(jī)名和服務(wù)名稱。
  • 默認(rèn)情況下,如果日志記錄器具有關(guān)聯(lián)處理程序,則日志記錄器將不委托給其父級??梢允褂?loggerName.useParentHandlers 屬性更改每個(gè)記錄器的此行為,該屬性接受布爾值。
  • 根記錄器可以使用 .handlers 屬性定義其處理程序集。
  • 默認(rèn)情況下,日志文件將在文件系統(tǒng)上保留 90 天。可以使用 handlerName.maxDays 屬性為每個(gè)處理程序更改此設(shè)置。如果屬性的指定值 ≤0,則日志文件將永遠(yuǎn)保留在文件系統(tǒng)上,否則它們將保留指定的最大天數(shù)。
  • 還有一些其他的實(shí)現(xiàn)類,可以與 Java 提供的實(shí)現(xiàn)類一起使用。值得注意的是 org.apache.juli.FileHandler 和 org.apache.juli.AsyncFileHandler。

org.apache.juli.FileHandler 支持日志的緩沖。默認(rèn)情況下,不啟用緩沖。要配置它,請使用處理程序的 bufferSize 屬性。值為 0 使用系統(tǒng)默認(rèn)緩沖(通常將使用 8K 緩沖)。值 <0 強(qiáng)制在每次日志寫入時(shí)刷新寫入器。值 >0 使用具有定義值的 BufferedOutputStream,但請注意還會應(yīng)用系統(tǒng)默認(rèn)緩沖。

org.apache.juli.AsyncFileHandler 是 FileHandler 的子類,它將日志消息排隊(duì)并異步寫入日志文件??梢酝ㄟ^設(shè)置一些系統(tǒng)屬性來配置其附加行為。

示例 logging.properties 文件,放置在 $CATALINA_BASE/conf 中:

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 = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.maxDays = 90
1catalina.org.apache.juli.FileHandler.encoding = UTF-8

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.maxDays = 90
2localhost.org.apache.juli.FileHandler.encoding = UTF-8

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.bufferSize = 16384
3manager.org.apache.juli.FileHandler.maxDays = 90
3manager.org.apache.juli.FileHandler.encoding = UTF-8

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = UTF-8

############################################################
# 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

Example logging.properties for the servlet-examples web application to be placed in WEB-INF/classes inside the web application:

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.OneLineFormatter

文檔參考

請查閱以下資源獲取更多信息:

Apache Tomcat 的 org.apache.juli 包的 Javadoc。

Oracle Java 11 的 java.util.logging 包的 Javadoc。

生產(chǎn)使用考慮事項(xiàng)

您可能需要注意以下事項(xiàng):

考慮從配置中移除 ConsoleHandler。默認(rèn)情況下(通過 .handlers 設(shè)置),日志會同時(shí)發(fā)送到 FileHandler 和 ConsoleHandler。后者的輸出通常會被捕獲到一個(gè)文件中,比如 catalina.out。因此,您最終會得到相同消息的兩份拷貝。
考慮移除那些您不使用的應(yīng)用程序的 FileHandlers。例如,host-manager 的一個(gè)。
處理程序默認(rèn)使用系統(tǒng)默認(rèn)編碼來寫入日志文件。可以使用 encoding 屬性進(jìn)行配置。請參閱 Javadoc 獲取詳細(xì)信息。
考慮配置訪問日志。

參考資料

https://tomcat.apache.org/tomcat-11.0-doc/monitoring.html文章來源地址http://www.zghlxwxcb.cn/news/detail-859330.html

到了這里,關(guān)于web server apache tomcat11-22-logging 日志的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • web server apache tomcat11-26-maven jars

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月28日
    瀏覽(17)
  • web server apache tomcat11-08-JNDI Resources

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    瀏覽(20)
  • web server apache tomcat11-01-官方文檔入門介紹

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 同時(shí)也為從零手寫實(shí)現(xiàn) tomcat 提供一些基礎(chǔ)和特性的思路。 minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 we

    2024年04月16日
    瀏覽(34)
  • web server apache tomcat11-07-Realm Configuration

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月25日
    瀏覽(19)
  • web server apache tomcat11-03-deploy 如何部署

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月17日
    瀏覽(19)
  • web server apache tomcat11-24-Virtual Hosting and Tomcat

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月27日
    瀏覽(19)
  • web server apache tomcat11-06-Host Manager App

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    瀏覽(27)
  • web server apache tomcat11-12-SSL/TLS Configuration

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    瀏覽(20)
  • web server apache tomcat11-21-monitor and management 監(jiān)控與管理

    整理這個(gè)官方翻譯的系列,原因是網(wǎng)上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 從零手寫實(shí)現(xiàn) tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 web server apache tomcat11-01-官方文檔入門介紹 web server apache tomcat11-02-setup 啟動 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月25日
    瀏覽(20)
  • Mybatis 日志(Apache Commons Logging)

    Mybatis 日志(Apache Commons Logging)

    之前我們介紹了使用JDK Log打印Mybatis運(yùn)行時(shí)的日志;本篇我們介紹使用Apache Commons Logging打印Mybatis運(yùn)行時(shí)的日志。 如何您對Mybatis中使用JDK Log不太了解,可以參考: Mybatis 日志(JDK Log) https://blog.csdn.net/m1729339749/article/details/132565362 在mybatis-config.xml文件中配置logImpl 在配置文件中,

    2024年02月07日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包