共用方式為


TraceLogging 參考

下列主題提供 C/C++ TraceLogging API 的相關資訊。

注意

如果您要從 C/C++ 程式碼產生事件,而且事件是在編譯時期定義,請使用本節中所述的 API。 否則,如果您要從 .NET 程式碼產生事件,請使用 .NET EventSource 類別。 否則,如果您使用 Windows 執行階段 (WinRT) ,請使用LoggingChannel。 否則,您可以使用社群支援的選項,例如 TraceLoggingDynamic

TraceLogging 是以 Windows 事件追蹤 (ETW) 為基礎,而且比以資訊清單為基礎的 ETW 或 WPP 更容易使用。 TraceLogging 可讓您產生包含結構化資料的事件、使用 ETW 活動支援事件相互關聯,而且不需要個別的檢測資訊清單 XML 檔案進行解碼。

TraceLoggingProvider.h 是使用者或核心模式中 C/C++ 開發人員的建議 API。 下列連結描述 C/C++ API。

請注意,WINVER (使用者模式的值) 會影響 TraceLoggingProvider.h 的行為方式:

  • 如果未在包含 <windows.h> 之前設定 WINVER,則將 <windows.h> WINVER 設定為對應至 SDK 版本的預設值。
  • 如果您使用 TraceLoggingProvider.h 並將 WINVER 設定為 0x0602 (Windows 8) 或更高版本,則程式可能不會在 Windows Vista 或 Windows 7 (TraceLoggingProvider.h 上執行,會嘗試直接使用未出現在 RTM 版 Windows Vista 或 Windows 7) 中的 EventSetInformation。
  • 如果您使用 TraceLoggingProvider.h 搭配 WINVER 設定為 0x0600 (Windows Vista) 或 0x0601 (Windows 7) ,則程式將會設定為相容性,而且會在指定的 Windows (TraceLoggingProvider.h 版本中,如果可用,則會透過 GetProcAddress 叫用 EventSetInformation) 。