簡體   English   中英

將應用程序部署到 tomcat 后,java.util.logging.FileHandler 不起作用

[英]java.util.logging.FileHandler is not working after app is deployed to tomcat

我有一個部署到 tomcat 的 java web 應用程序。 我正在使用 java.util.logging 進行日志記錄。 這是 logging.properties 文件。

handlers=java.util.logging.FileHandler,org.apache.juli.FileHandler,java.util.logging.ConsoleHandler

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

java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern =%h/DemoWebAppLogs/DemoWebApp%u%g.log
java.util.logging.FileHandler.append=true
java.util.logging.FileHandler.limit = 5000
java.util.logging.FileHandler.count = 5000
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter


這是我的代碼的GitHub鏈接。
當我在 Eclipse 上調試/運行應用程序時,控制台和文件日志都工作正常。
在 C:/Users/User DemoWebAppLogs 文件夾中創建並 DemoWebApp00.log 和
DemoWebApp00.log.lck 文件已創建。
但是當我在 tomcat 上部署應用程序時,文件日志記錄不起作用(控制台日志記錄工作)。 僅創建 DemoWebAppLogs 文件夾,但沒有 .log 或 .lck 文件。
我使用 eclipse 導出了 DempWebApp.war 文件並將該文件放在 CATALINA_HOME/webapps 中。 我正在使用 tomcat 9.0.55。

在您的代碼中,您不需要在 Tomcat 下調用 LogManager.readConfiguration。 根據文檔

JULI 默認啟用,除了常規的全局 java.util.logging 配置外,還支持每個類加載器配置。 這意味着可以在以下層配置日志記錄:

  • 在全球范圍內。 這通常在 ${catalina.base}/conf/logging.properties 文件中完成。 該文件由啟動腳本設置的 java.util.logging.config.file 系統屬性指定。 如果不可讀或未配置,則默認使用 JRE 中的 ${java.home}/lib/logging.properties 文件。
  • 在網絡應用程序中。 該文件將是 WEB-INF/classes/logging.properties

只需將 logging.properties 放在 WEB-INF/classes 中。

但是當我在 tomcat 上部署應用程序時,文件日志記錄不起作用(控制台日志記錄工作)。 僅創建 DemoWebAppLogs 文件夾,但沒有 .log 或 .lck 文件。

FileHandler 從未打開,因為它沒有被調用,路徑指向其他地方,或者打開失敗。

根記錄器可以延遲加載處理程序,直到它看到一條日志消息。 嘗試將級別設置為 ALL。 檢查 Tomcat 的所有日志文件,包括來自 Tomcat 進程的任何控制台輸出。 如果日志加載失敗,這些日志中應該有一條錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM