Logging

Tomcat 9 - catalina.out 日誌文件失去,控制台列印輸出未顯示在任何地方

  • August 9, 2021

Tomcat9 部署在 Ubuntu 18.04 上。此問題僅適用於 Tomcat 版本 9。有一個 catalina。日期.log 文件存在於日誌文件夾中,但它不顯示來自我們的 Web 應用程序的任何控制台列印輸出。

我在 logging.properties 中將 ConsoleHandler 級別設置為 ALL,仍然沒有日誌。

任何指針,想法?謝謝!

Ubuntu 18.04(和 Debian 10)上的tomcat9包使用 systemd.service文件。預設情況下,它們將 Tomcat 的stdoutstderr重定向到帶有 program name 的 syslog tomcat9。在 Debian 10中, RSyslog被配置為將這些寫入/var/log/tomcat9/catalina.out,但在您的情況下可能不是這樣。

所以你至少有兩個解決方案:

  1. 從以下位置讀取輸出systemd-journald
journalctl -u tomcat9.service

您可能希望使日誌儲存持久化(CentOS 的解決方案也適用於 Ubuntu)。 2. 修改.service文件以將輸出重定向到/var/log/tomcat9/catalina.out

systemctl edit --full tomcat9.service

並按照StackOverflow 上的說明進行操作

請注意,通過System.out.println和類似的“記錄”是不好的做法,因為您無法控制記錄的內容和方式。如果swallowOutput要將這些語句發送到java.util.logging. ServletContext#log()通過和java.util.logging記錄的所有消息都以catalina.<date>.log或結尾localhost.<date>.log

引用自:https://serverfault.com/questions/993398