Obiekty nasłuchujące śledzenia
Uwaga
Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.
W przypadku korzystania z funkcji Trace, Debug i TraceSource, musisz mieć mechanizm zbierania i rejestrowania wysyłanych komunikatów. Komunikaty śledzenia są odbierane przez odbiorniki. Odbiornik ma na celu zbierania, przechowywania i komunikatów śledzenia, które trasy. Odbiorniki bezpośrednie dane wyjściowe śledzenia do odpowiedniego obiektu docelowego, takie jak dziennik, okno lub PLiku tekstowego.
Odbiorniki są dostępne dla klas Debug, Trace iTraceSource, z których każdy może wysyłać dane wyjściowe do różnych obiektów odbiornika. Poniżej przedstawiono często używane wstępnie zdefiniowane odbiorniki:
Element TextWriterTraceListener przekierowuje dane wyjściowe do wystąpienia TextWriter klasy lub do niczego, co jest klasą Stream . Może również zapisywać dane w konsoli programu lub w pliku, ponieważ są Stream to klasy.
Dane EventLogTraceListener wyjściowe są przekierowywane do dziennika zdarzeń.
Element DefaultTraceListener emituje komunikaty Write i WriteLine do parametru OutputDebugString i do metody Debugger.Log. W programie Visual Studio spowoduje to wyświetlenie komunikatów debugowania w oknie Dane wyjściowe. Komunikaty asertywne i nieudane są również emitowane do interfejsu API systemu Windows OutputDebugString i metody Debugger.Log, a także powodują wyświetlenie pola komunikatu. To zachowanie jest zachowaniem domyślnym dla komunikatów debugowania i śledzenia , ponieważ element DefaultTraceListener jest automatycznie dołączany do każdej
Listeners
kolekcji i jest jedynym odbiornikiem automatycznie dołączonym.Funkcja ConsoleTraceListener kieruje śledzenie lub debugowanie danych wyjściowych do standardowych danych wyjściowych lub standardowego strumienia błędów.
Funkcja DelimitedListTraceListener kieruje śledzenie lub debugowanie danych wyjściowych do modułu zapisywania tekstu, takiego jak składnik zapisywania strumienia lub strumienia, takiego jak strumień plików. Dane wyjściowe śledzenia są w formacie tekstowym rozdzielanym, który używa ogranicznika określonego Delimiter przez właściwość .
Funkcja XmlWriterTraceListener przekierowuje śledzenie lub debugowanie danych wyjściowych jako dane zakodowane w formacie XML do obiektu TextWriter lub do Streamelementu , takiego jak FileStream.
Jeśli chcesz, aby dowolny odbiornik oprócz odbiornika DefaultTraceListener odbierał dane debugowania, śledzenia i TraceSource danych wyjściowych, musisz dodać go do Listeners
kolekcji. Aby uzyskać więcej informacji, zobacz How to: Create and Initialize Trace Listeners (Instrukcje: tworzenie i inicjowanie odbiorników śledzenia) oraz How to: Use TraceSource and Filters with Trace Listeners (Instrukcje: tworzenie i inicjowanie odbiorników śledzenia) oraz How to: Use TraceSource and Filters with Trace Listeners (Instrukcje: używanie elementu TraceSource i filtrów za pomocą odbiorników śledzenia). Każdy odbiornik w kolekcji Odbiorniki pobiera te same komunikaty z metod danych wyjściowych śledzenia. Załóżmy na przykład, że skonfigurowaliśmy dwa odbiorniki: TextWriterTraceListener i EventLogTraceListener. Każdy odbiornik odbiera ten sam komunikat. TextWriterTraceListener przekierowuje swoje dane wyjściowe do strumienia, a element EventLogTraceListener przekierowuje dane wyjściowe do dziennika zdarzeń.
W poniższym przykładzie pokazano, jak wysyłać dane wyjściowe do kolekcji Odbiorniki .
' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");
Debugowanie i śledzenie współużytkuje tę samą kolekcję Odbiorniki , więc jeśli dodasz obiekt odbiornika do kolekcji Debug.Listeners w aplikacji, zostanie on również dodany do kolekcji Trace.Listeners .
W poniższym przykładzie pokazano, jak używać odbiornika do wysyłania informacji śledzenia do konsoli:
Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
new System.Diagnostics.TextWriterTraceListener(Console.Out));
Odbiorniki zdefiniowane przez dewelopera
Własne odbiorniki można zdefiniować, dziedzicząc z klasy bazowej TraceListener i przesłaniając jej metody za pomocą dostosowanych metod. Aby uzyskać więcej informacji na temat tworzenia odbiorników zdefiniowanych przez deweloperów, zobacz TraceListener w dokumentacji programu .NET Framework.