我一直在研究在现有后端/服务器应用程序中使用Windows 事件跟踪(ETW)。MSDN 和其他来源已经出售了框架的强大功能及其与xperf等的集成,坦率地说,我对此印象深刻。
但是,我有点担心 Win32 API 和使用清单编码编译/注册等的开销。
亲们,你们:
- 推荐它?在您的系统中使用它有问题吗?
- 知道更多 C++/STL 风格的包装器吗?
- 是否有管理清单文件的工具?
我建议使用 WPP,而不是直接使用 Win32 API。
WPP 是一个预处理器,它允许您在代码中的任何位置编写类似 printf 的跟踪行,并获得这些结果以及附加数据(例如,传递给跟踪中的各种 %d 和 %s 的参数)登录到 ETW。
这方面的明确指南是Visual C++ 2010 项目中的 WPP 跟踪。
一方面,ETW 非常强大。但与此同时,它也不是那么容易开始的。
但是,GitHub 上有一个项目可以简化编写您自己的 ETW 提供程序。这是一个很好的写作例子: