跟踪日志.NET HTTP处理程序的最佳方法是什么?

时间:2009-02-04 02:20:19

标签: logging enterprise-library tracing

我们有一个非常高性能的多线程.NET HTTP处理程序应用程序,并且希望启用跟踪日志记录以进行调试。我对此有几个问题:

  • tracelevel是切换开/关日志记录的最佳方式吗?
  • 如果tracelevel为“off”,那么tracelevel语句会对性能产生影响吗?
  • 使用HTTP处理程序时,如何实时查看跟踪日志?
  • 企业库是否过度了?它是否提供任何开销?

1 个答案:

答案 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事件日志系统中,让系统管理员在生产中打开和关闭不同的日志记录 - 无需为您的应用程序使用专门的工具。