2008-09-19 61 views
4

控制Apache Tomcat的servlet容器启动的server.xml几乎包含每个主要组件的调试属性。调试属性或多或少取决于你给它的数量,零最少,99最为冗长。在为大量用户提供服务时,调试级别如何影响Tomcat的速度?我假设零速度很快,99相对较慢,但这是真的。如果没有错误被抛出,这是否重要?Tomcat server.xml中的调试级别(0-99)如何影响速度?

回答

2

强大的记录功能需要的时间显著量。这就是为什么它是如此重要把

if (log.isDebugEnabled()) 
    log.debug(bla_bla_bla); 

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

+3

坦率地说,没有。你只需要isDebugEnabled()检查日志数据是非常重的还是很难构建。记录器的debug()或warn()或其他方法通常可以有效地执行,以检查它们是否合适,然后立即退出,而没有太多的开销。 – 2008-09-22 11:21:16

2

记录不仅负责给你的错误,同时也为正在发生的事情的跟踪。在某些情况下,代码不能在调试器中运行,那么记录是唯一的选择。

这就是为什么日志输出可以是非常冗长。而我真的的意思是那。我记得曾经将Catalina的loglevel设置为TRACE一次,并以几兆字节的日志文件结束。这是之前服务器收到任何命中。这是一个巨大的表演猪。可以在几秒钟内计数。

如果您不需要日志记录,Tomcat本身,不激活的任何组件。如果您怀疑安装程序或Tomcat本身存在缺陷,您通常只需要修改Tomcat的日志级别。

对于自己的应用程序,测量使用分析或只是一些压力测试日志成本。无论您的结果如何,我都建议不要在生产环境中运行具有较高日志级别设置的应用程序。我当前的项目上转储警告(IFF一切顺利:-)大约在跟踪设置每要求兆字节,大约只有三,四线的信息并没有什么。我建议不要超过最必要的日志记录。您的应用程序应该只报告启动,关闭和失败,并且 - 最多 - 每个请求一行。