我们有一个非常高性能的多线程.NET HTTP处理程序应用程序,并且希望启用跟踪日志记录以进行调试。我对此有几个问题:
答案 0 :(得分:1)
在许多情况下,企业库似乎有些过分,但这可能只是令人生畏的配置。
log4net很棒。它们提供“无性能影响”日志记录体验的方式是通过从静态只读变量中调用对记录器的调用。由于静态只读变量在类型初始化期间被设置,因此JIT可以考虑这一点,并简单地删除对该情况下的记录器的调用。请注意,这意味着您无法动态重新配置。
另一个选项是Event Tracing for Windows(ETW)。性能已针对内核使用进行了调整,并且可能非常出色:
“我们已经达到了20,000次活动 第二,同时仅使用5%的CPU负载 一个P3 500MHz!“ (来自http://blogs.msdn.com/ryanmy/archive/2005/05/27/422772.aspx)
但是,.NET集成会增加一些开销,而且.NET集成也不是很愉快,IMO。从好的方面来说,您可以很好地集成到Windows事件日志系统中,让系统管理员在生产中打开和关闭不同的日志记录 - 无需为您的应用程序使用专门的工具。