【问题标题】:Turn off logging to console for application running on Tomcat关闭在 Tomcat 上运行的应用程序的控制台日志记录
【发布时间】:2021-08-07 02:50:39
【问题描述】:

我有一个在 tomcat 服务器上运行的旧服务。我不想碰这个服务(我不确定我会怎么做),但我知道这个服务会在 tomcat 服务器控制台(当我们运行 startup.bat 时出现的控制台)上打印很多日志。我认为这些日志导致服务变慢,我想以某种方式配置 tomcat 服务器,以便在 tomcat 服务器上运行的 webapps 不会在控制台上打印任何日志。如果可能的话,我不想改变服务。任何帮助表示赞赏。

【问题讨论】:

    标签: tomcat logging


    【解决方案1】:

    完全关闭日志记录通常是个坏主意。这篇文章中有一些指导:How to stop Tomcat logging?

    您还可以尝试降低日志记录详细级别以过滤掉除 SEVERE 之外的所有日志,这样如果以后确实发生了不好的事情,至少 SEVERE 消息可能会帮助您指出正确的方向。如果您想尝试调整日志详细级别,http://tomcat.apache.org 上的 Tomcat 文档会很有帮助。

    【讨论】:

      【解决方案2】:

      可以在 [conf/logging.properties] (https://github.com/apache/tomcat/blob/master/conf/logging.properties) 文件中通过删除 java.util.logging.ConsoleHandler 处理程序来配置 Tomcat 服务器的日志记录。修改行:

      .handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
      

      .handlers = 1catalina.org.apache.juli.AsyncFileHandler
      

      这实际上是生产服务器的一个好习惯:

      Apache Tomcat 中的默认日志记录配置将相同的消息写入控制台和日志文件。这在使用 Tomcat 进行开发时非常有用,但在生产中通常不需要。

      (参见Logging in Tomcat

      但是,Tomcat 服务器本身的日志消息并不是很冗长。写入标准输出/错误的数据量可能是由于:

      • 旧应用程序“记录”System.out/System.err,而不是适当的记录框架。在 Tomcat 中,您可以将这些消息重定向到正确的日志文件,将上下文的 swallowOutput 属性设置为 true(请参阅 this question),
      • 其他日志框架,如 Log4j 或 Logback,配置为记录到标准输出/错误。对于这些,您只需修改它们的配置文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-27
        • 2016-09-07
        • 2016-05-30
        • 2012-10-05
        • 2013-12-06
        • 1970-01-01
        • 1970-01-01
        • 2023-02-26
        相关资源
        最近更新 更多