Freigeben über


TraceLogging-Referenz

Die folgenden Themen enthalten Informationen zur C/C++-Ablaufprotokollierungs-API.

Anmerkung

Wenn Sie Ereignisse aus C/C++-Code generieren und die Ereignisse zur Kompilierungszeit definiert werden, verwenden Sie die in diesem Abschnitt beschriebenen APIs. Verwenden Sie andernfalls die .NET-EventSource--Klasse, wenn Sie Ereignisse aus .NET-Code generieren. Wenn Sie andernfalls Windows-Runtime (WinRT) verwenden, verwenden Sie LoggingChannel-. Andernfalls können Sie möglicherweise eine communitygestützte Option wie TraceLoggingDynamicverwenden.

TraceLogging baut auf der Ereignisablaufverfolgung für Windows (ETW) auf und ist einfacher zu verwenden als manifestbasiertes ETW oder WPP. Mithilfe von TraceLogging können Sie Ereignisse generieren, die strukturierte Daten enthalten, die Ereigniskorrelation mithilfe von ETW-Aktivitäten unterstützen und keine separate XML-Manifestdatei für die Instrumentierung für die Decodierung erfordern.

TraceLoggingProvider.h ist die empfohlene API für C/C++-Entwickler im Benutzer- oder Kernelmodus. Die folgenden Links beschreiben die C/C++-API.

Beachten Sie, dass sich der Wert von WINVER (Benutzermodus) auf das Verhalten von TraceLoggingProvider.h auswirkt:

  • Wenn WINVER nicht festgelegt ist, bevor <windows.h>eingeschlossen wird, legt <windows.h> WINVER auf einen Standardwert fest, der der SDK-Version entspricht.
  • Wenn Sie TraceLoggingProvider.h mit WINVER auf 0x0602 (Windows 8) oder höher festlegen, wird das Programm möglicherweise nicht unter Windows Vista oder Windows 7 ausgeführt (TraceLoggingProvider.h versucht, die EventSetInformation direkt zu verwenden, die in RTM-Versionen von Windows Vista oder Windows 7 nicht vorhanden war).
  • Wenn Sie TraceLoggingProvider.h mit WINVER auf 0x0600 (Windows Vista) oder 0x0601 (Windows 7) festlegen, wird das Programm für Kompatibilität konfiguriert und arbeitet mit den angegebenen Versionen von Windows (TraceLoggingProvider.h ruft EventSetInformation über GetProcAddress auf, falls verfügbar).