Search code examples
c++windowseventstraceetw

C++ Event Tracing for Windows (ETW) wrapper


I have been investigating Event Tracing for Windows (ETW) for use within existing backend/server applications. MSDN and other sources have sold the power of the framework and its integration with xperf, etc. which frankly I am impressed with.

However I am a bit concerned by the Win32 APIs and the overhead of working with the manifest coding compilating/registration, etc.

Folks, do you:

  • Recommend it? Have problems using it with your systems?
  • Know of a more C++/STL style wrapper?
  • Are there tools for managing the manifest files?

Solution

  • Rather than using the Win32 API directly, I would recommend using WPP.

    WPP is a pre-processor which allow you to write printf-like trace lines anywhere in your code and have the result of those, along with the additional data (e.g. the arguments passed to the various %d and %s in the trace) be logged to ETW.

    The definite guide for this is WPP Tracing in Visual C++ 2010 Projects.