Udostępnij przez


Informacje o funkcji TraceLogging

TraceLogging to system rejestrowania zdarzeń, które można dekodować bez manifestu. W systemie Windows funkcja TraceLogging jest używana zarówno w składnikach trybu użytkownika, jak i w trybie jądra do generowania śledzenia zdarzeń systemu Windows (ETW). Funkcja TraceLogging opiera się na śledzeniu zdarzeń dla systemu Windows (ETW) i zapewnia uproszczony sposób instrumentowania kodu.

Śledzenie zdarzeń dla systemu Windows (ETW) zostało wprowadzone z systemem Windows 2000 i zaktualizowane w systemie Windows Vista. TraceLogging opiera się na interfejsach API ETW systemu Windows Vista. Dostawcy mogą używać funkcji TraceLogging podczas uruchamiania w systemie Windows Vista lub nowszym. Istniejące kontrolery śledzenia ETW mogą służyć do kontrolowania dostawców funkcji TraceLogging i przechwytywania śladów przy użyciu interfejsów API systemu Windows Vista. Istniejące dekodatory śledzenia ETW korzystające z dekodowania API TDH mogą dekodować zdarzenia TraceLogging, gdy działają na systemie Windows 10 lub nowszym.

Funkcja TraceLogging oferuje kilka korzyści:

  • Prostota definiowania zdarzeń bezpośrednio w kodzie, podobnie jak WPP, ale bez konieczności wstępnego przetwarzania.
  • Dane ustrukturyzowane: nazwane pola z typami, obsługa tablic i struktur.
  • Korelacja zdarzeń za pośrednictwem działań ETW.
  • Wszystkie informacje dekodowania zdarzenia są uwzględniane w samym zdarzeniu, więc żadne dodatkowe pliki nie są potrzebne do dekodowania.
  • Interfejsy API dostawcy zdarzeń TraceLogging są dostępne dla C/C++, .NETi środowiska uruchomieniowego systemu Windows (WinRT). Obsługa zewnętrzna dostępna dla python, Rust itp.

Chociaż funkcja TraceLogging zapewnia kilka korzyści i powinna być brana pod uwagę w przypadku nowego śledzenia, funkcja ETW oparta na manifeście jest nadal odpowiednia dla wielu scenariuszy.

  • Jeśli Twoje zdarzenia dotyczą jednego z dziedziczonych dzienników systemu Windows w systemie Windows Event Log (np. dzienników Systemu lub Aplikacji), kontynuuj korzystanie z ETW opartego na manifeście.
  • Jeśli rozmiar pliku śledzenia jest ważnym czynnikiem, nadal korzystaj z ETW z użyciem manifestu. Zdarzenia TraceLogging obejmują ciągi znaków zdarzeń (nazwę dostawcy, nazwę zdarzenia i nazwy pól) zawarte w każdym zdarzeniu i zwykle są bardziej rozbudowane niż równoważne zdarzenia oparte na manifeście.
  • Jeśli masz dużą inwestycję w istniejącą technologię śledzenia, nie ma potrzeby przełączania się do funkcji TraceLogging.
  • W przeciwnym razie rozważ użycie TraceLogging, ponieważ oferuje prostsze doświadczenie dla programisty i odbiorcy zdarzeń.

Ogólne omówienie interfejsu API

Istnieje wiele interfejsów API TraceLogging, z których każde jest przeznaczone dla różnych grup deweloperów.

  • Jeśli musisz wygenerować zdarzenia z kodu C lub C++, TraceLoggingProvider.h zapewnia wydajny interfejs API do generowania zdarzeń TraceLogging z poziomu kodu trybu użytkownika lub jądra. Zdarzenia muszą być zdefiniowane w czasie kompilacji.
  • W przeciwnym razie, jeśli potrzebujesz wygenerować zdarzenia z kodu .NET, klasa EventSource obsługuje generowanie zarówno zdarzeń ETW opartych na manifestach, jak i na TraceLogging. Zdarzenia muszą być zdefiniowane w czasie kompilacji.
  • W przeciwnym razie, jeśli używasz środowiska uruchomieniowego systemu Windows (WinRT), LoggingChannel został rozszerzony w systemie Windows 10, aby rejestrować zdarzenia TraceLogging.
  • W przeciwnym razie możesz użyć opcji obsługiwanej przez społeczność, takiej jak TraceLoggingDynamic.

Informacje o śledzeniu zdarzeń