Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.