为什么使用ETW而不是EventLog,反之亦然?

Kal*_*son 13 .net etw event-log

为什么我应该使用事件跟踪Windows(ETW)而不是标准的.NET EventLog类,反之亦然?知道我们将使用相当多的性能计数器会影响决策吗?

到目前为止我所知道的:

  1. ETW应该表现得更好.
  2. ETW要集成更多的工作(例如Windows的.NET事件跟踪)
  3. 通过选择ETW中的一个标准通道(例如,应用程序,系统),事件日志中提供了相同的信息.

Ree*_*sey 13

ETW有许多优点.

首先,在.NET 4.5中,使用起来会更简单.4.5中的EventSource类极大地简化了在代码中创建事件的过程.

然而,即使没有这个,ETW也有一些巨大的优势,尽管它通常的工作方式不同,因此,它与EventLog的用途不同.

EventLog真的是为日志记录而设计的.另一方面,ETW允许您在整个系统的上下文中跟踪应用程序的进度.当您开始收集ETW事件时,您将在系统基础上收集它们,这样您不仅可以跟踪应用程序,还可以查看系统运行时发生的情况.通过使用像PerfView这样的工具,您可以看到应用程序的特定部分如何运行,同时查看框架和Windows整体上发生的情况.