Tomcat server.xml中的调试级别(0-99)如何影响速度?

时间:2008-09-19 14:03:46

标签: java apache tomcat servlets

控制Apache Tomcat的servlet容器启动的server.xml包含几乎所有主要组件的调试属性。 debug属性或多或少冗长,具体取决于你给出的数字,零是最小的,99是最冗长的。在为大量用户提供服务时,调试级别如何影响Tomcat的速度?我假设零很快,99相对较慢,但这是真的。如果没有抛出错误,那有关系吗?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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

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