控制 Apache Tomcat servlet 容器启动的 server.xml 包含几乎每个主要组件的调试属性。调试属性或多或少详细取决于您给它的数字,0 表示最少,99 表示最详细。当为大量用户提供服务时,调试级别如何影响 Tomcat 的速度?我认为 0 很快,99 相对较慢,但这是真的吗?如果没有抛出错误,这有什么关系吗?

有帮助吗?

解决方案

广泛的日志记录需要花费大量时间。这就是为什么把

这么重要的原因
if (log.isDebugEnabled())
  log.debug(bla_bla_bla);

所以我会说让你的生产服务器变得冗长会严重影响性能。我认为这是一个你正在讨论的生产服务器,因为你说它必须服务于大量用户。

其他提示

记录不仅会导致错误,而且还会跟踪正在发生的事情。在某些情况下,代码无法在调试器内运行,因此日志记录是您唯一的选择。

这就是为什么日志输出可能非常冗长。我真的意味着。我记得曾经将Catalina的loglevel设置为TRACE,最后得到了几兆字节的日志文件。那是之前服务器收到任何点击。这是一场巨大的表现。可以在几秒钟内完成。

如果您不需要记录Tomcat本身,请不要在其任何组件上激活它。如果您怀疑设置或Tomcat本身存在错误,通常只想修改Tomcat的loglevel。

对于您自己的应用程序,使用分析器或仅进行一些压力测试来衡量日志记录成本。无论结果如何,我都建议不要在生产环境中运行具有高loglevel设置的应用程序。我当前的项目在TRACE设置下每个请求转储大约1兆字节,在INFO上只有大约三到四行,而在WARNING上没有任何内容(iff一切顺利:-)。我建议不要超过最必要的日志记录。您的应用程序应该只报告启动,关闭和失败,并且 - 最多 - 每个请求一行。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top