Electronic Joint Business

Solution for E-Business

event

Windows事件追踪入门与使用方法

文章评价:
大多数 Windows 开发者或多或少都知道 Windows 事件追踪(Event Tracing for Windows,ETW),ETW 是由 Windows 操作系统提供的一种通用的,系统开销较低(与性能日志和警报相比)的事件追踪手段,用以监控具有负载的系统的性能, 它在内核中运行,可以追踪用户模式应用程序、操作系统内核和内核模式设备驱动引发的事件。此外,ETW 还能够动态地启用或者禁用日志记录,便于进行详细的追踪,而无需重新启动操作系统或者应用程序。
一些操作系统核心组件和第三方应用程序使用 Windows 事件追踪来提供事件日志记录和追踪。

ETW 是随着 Windows 2000 中第一次出现在其发布版本中的,对于后续的 Windows 来说, ETW 已经是内置工具。

ETW的架构
ETW 主要包含四种类型的组件,其核心体系架构如图1-1 所示:

  • 事件提供程序
  • 控制器
  • 使用者
  • 事件跟踪会话

事件跟踪会话(Session) 负责缓存和日志记录,会话接受事件并创建一个跟踪文件。ETW 会话可以使用多种日志记录模式。例如,可以对会话进行配置,直接向使用者应用程序传送事件,或在文件达到特定大小时通过回绕在某个文件中重写旧事件。为每个会话创建的单独写线程会将这些事件刷新到文件或实时使用者应用程序中。如果要实现高性能,还可以使用每服务器的缓冲区,这样无需在日志记录路径中设置锁定。

事件提供程序 (Provider)指的是一种可以将事件写入 ETW 会话的逻辑实体。任何可记录的重要活动均可作为事件,每个活动由记录到 ETW 中的一个事件表示。事件提供程序可以是用户模式应用程序、托管应用程序、驱动程序或任何其他软件实体。唯一的要求是,事件提供程序必须通过注册 API 向 ETW 注册一个提供程序 ID。提供程序首先向 ETW 注册,然后调用 ETW 日志记录 API 如EventWriteEx, EventWriteString 或者 EventWriteTransfer 写入来自代码内多个点的事件。

>>> 阅读全文

 

, , ,