Sdílet prostřednictvím


Informace o traceLoggingu

TraceLogging je systém pro protokolování událostí, které lze dekódovat bez manifestu. V systému Windows je TraceLogging používán v komponentách uživatelského režimu i v režimu jádra ke generování událostí trasování událostí pro Windows (ETW). TraceLogging vychází z trasování událostí pro Windows (ETW) a poskytuje zjednodušený způsob instrumentace kódu.

Trasování událostí pro Windows (ETW) bylo zavedeno v systému Windows 2000 a aktualizováno v systému Windows Vista. TraceLogging vychází z rozhraní API Windows Vista pro Windows ETW. Zprostředkovatelé mohou použít TraceLogging při spuštění v systému Windows Vista nebo novější. Existující kontrolery trasování lze použít k řízení zprostředkovatelů TraceLogging a zachycení trasování pomocí rozhraní API systému Windows Vista. Existující dekodéry trasování, které používají rozhraní API dekódování TDH, mohou dekódovat události TraceLogging při spuštění na Windows 10 nebo novějších.

TraceLogging nabízí několik výhod:

  • Jednoduchost definování událostí přímo v kódu, podobně jako WPP, ale bez nutnosti předběžného zpracování.
  • Strukturovaná data: pojmenovaná pole s typy, podpora seznamů a struktur.
  • Korelace událostí prostřednictvím aktivit etW.
  • Všechny informace o dekódování události jsou zahrnuty do samotné události, takže žádné další soubory potřebné k dekódování.
  • Rozhraní API zprostředkovatele událostí TraceLogging jsou k dispozici pro C/C++C/C++, .NETa Prostředí Windows Runtime (WinRT). Externí podpora dostupná pro Python, Rust atd.

I když TraceLogging poskytuje několik výhod a je třeba ho zvážit pro nové trasování, ETW založené na manifestu je stále vhodné pro mnoho scénářů.

  • Pokud vaše události cílí na jeden ze starších protokolů v protokolu událostí systému Windows, jako jsou systémové nebo aplikační protokoly, pokračujte v používání ETW (Event Tracing for Windows) na základě manifestu.
  • Pokud je důležité vzít v úvahu velikost trasovacího souboru, pokračujte v používání ETW založené na manifestu. Události TraceLogging zahrnují řetězce událostí (název zprostředkovatele, název události a názvy polí) uvnitř každé události a obvykle jsou větší než ekvivalentní událost založená na manifestu.
  • Pokud máte velké investice do stávající technologie trasování, není nutné přepnout na TraceLogging.
  • V opačném případě zvažte použití TraceLogging, protože nabízí jednodušší prostředí pro vývojáře a příjemce událostí.

Základní přehled rozhraní API

Existuje několik rozhraní API traceLogging, z nichž každá cílí na různé cílové skupiny vývojářů.

  • Pokud potřebujete generovat události z kódu C nebo C++, TraceLoggingProvider.h poskytuje efektivní rozhraní API pro generování událostí TraceLogging z uživatelského režimu nebo kódu v režimu jádra. Události musí být definovány v době kompilace.
  • V opačném případě, pokud potřebujete generovat události z kódu .NET, třída .NET EventSource podporuje generování událostí ETW založených na manifestu i událostí založených na TraceLogging. Události musí být definovány v době kompilace.
  • Jinak pokud používáte prostředí Windows Runtime (WinRT), LoggingChannel byl ve Windows 10 rozšířen o protokolování událostí TraceLogging.
  • Jinak můžete použít možnost podporovanou komunitou, například TraceLoggingDynamic.

o trasování událostí