Trace Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zawiera zestaw metod i właściwości, które ułatwiają śledzenie wykonywania kodu. Klasa ta nie może być dziedziczona.
public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
- Dziedziczenie
-
Trace
Przykłady
W poniższym przykładzie użyto Trace metody , aby wskazać początek i koniec wykonywania programu. W przykładzie użyto Trace.Indent również metod i Trace.Unindent do odróżnienia danych wyjściowych śledzenia. Aby uzyskać bardziej kompletny przykład użycia programu Trace, zobacz Instrukcje: Dodawanie instrukcji śledzenia do kodu aplikacji.
// Specify /d:TRACE when compiling.
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));
Trace.AutoFlush = true;
Trace.Indent();
Trace.WriteLine("Entering Main");
Console.WriteLine("Hello World.");
Trace.WriteLine("Exiting Main");
Trace.Unindent();
}
}
' Specify /d:TRACE=True when compiling.
Imports System.Diagnostics
Class Test
Shared Sub Main()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
Trace.AutoFlush = True
Trace.Indent()
Trace.WriteLine("Entering Main")
Console.WriteLine("Hello World.")
Trace.WriteLine("Exiting Main")
Trace.Unindent()
End Sub
End Class
Uwagi
Właściwości i metody w Trace klasie można użyć do instrumentowania kompilacji wydania. Instrumentacja umożliwia monitorowanie kondycji aplikacji działającej w ustawieniach rzeczywistych. Śledzenie pomaga wyizolować problemy i rozwiązywać je bez zakłócania działającego systemu.
Ta klasa udostępnia metody wyświetlania okna dialogowego Assert i emitowania asercji, która zawsze Failbędzie . Ta klasa udostępnia metody zapisu w następujących odmianach:
Klasy BooleanSwitch i TraceSwitch zapewniają metody dynamicznego kontrolowania danych wyjściowych śledzenia. W aplikacjach platformy .NET Framework można modyfikować wartości tych przełączników bez ponownego komplikowania aplikacji. Aby uzyskać informacje na temat ustawiania przełącznika w aplikacji .NET Framework, zobacz klasę Switch i Jak utworzyć, zainicjować i skonfigurować przełączniki śledzenia.
Element docelowy śledzenia można dostosować, dodając TraceListener wystąpienia do kolekcji lub usuwając je.Listeners Kolekcja Listeners jest współużytkowany przez klasy Debug i Trace ; dodanie odbiornika śledzenia do jednej z klas dodaje odbiornik do obu tych klas. Domyślnie dane wyjściowe śledzenia są emitowane przy użyciu DefaultTraceListener klasy .
Note
Dodanie odbiornika śledzenia do Listeners kolekcji może spowodować zgłoszenie wyjątku podczas śledzenia, jeśli zasób używany przez odbiornik śledzenia jest niedostępny. Warunki i zgłoszony wyjątek zależą od odbiornika śledzenia i nie można go wyliczyć w tym temacie. Może być przydatne umieszczenie wywołań do Trace metod w blokach w try/catch celu wykrywania i obsługi wyjątków od odbiorników śledzenia.
Note
Jeśli dodasz odbiorniki śledzenia do częściowo zaufanego kodu, otrzymasz SecurityException wyjątek, ponieważ dodanie odbiorników śledzenia wymaga UnmanagedCode uprawnień. Aby śledzić częściowo zaufany kod uruchomiony w piaskownicy w Visual Studio, nie należy dodawać odbiorników śledzenia. Zamiast tego wyświetl Trace komunikaty i Debug w oknie Dane wyjściowe .
Klasa Trace udostępnia właściwości umożliwiające uzyskanie lub ustawienie poziomu parametru IndentIndentSizei oraz określa, czy ma to miejsce AutoFlush po każdym zapisie.
W aplikacjach .NET Framework można ustawić AutoFlush i IndentSize dla Trace, edytując plik konfiguracji odpowiadający nazwie aplikacji. Plik konfiguracji powinien być sformatowany tak jak w poniższym przykładzie:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="3" />
</system.diagnostics>
</configuration>
Atrybut ConditionalAttribute jest stosowany do metod Trace. Kompilatory, które obsługują ConditionalAttribute ignorowanie wywołań do tych metod, chyba że TRACE jest zdefiniowany jako symbol kompilacji warunkowej. Zapoznaj się z dokumentacją kompilatora, aby określić, czy ConditionalAttribute jest obsługiwana, oraz składnia definiowania symbolu kompilacji warunkowej.
Note
W projektach Visual Studio domyślnie symbol kompilacji warunkowej DEBUG jest definiowany dla kompilacji debugowania, a symbol TRACE jest definiowany dla kompilacji debugowania i wydania.
Aby zdefiniować TRACE symbol kompilacji warunkowej w języku C#, dodaj /d:TRACE opcję do wiersza polecenia kompilatora podczas kompilowania kodu przy użyciu wiersza polecenia lub dodaj #define TRACE go na początku pliku. W języku Visual Basic dodaj /d:TRACE=True opcję do wiersza polecenia kompilatora lub dodaj #Const TRACE=True go do pliku.
ConditionalAttribute nie jest obsługiwany przez kompilator języka C++. Aby zapewnić równoważną funkcjonalność, należy ująć wywołania metod Trace w #if defined(TRACE) ... #endif bloku i dodać /DTRACE opcję do wiersza polecenia kompilatora lub dodać #define TRACE do pliku.
Właściwości
| Nazwa | Opis |
|---|---|
| AutoFlush |
Pobiera lub ustawia, czy Flush() powinny być wywoływane Listeners po każdym zapisie. |
| CorrelationManager |
Pobiera menedżera korelacji dla wątku dla tego śladu. |
| IndentLevel |
Pobiera lub ustawia poziom wcięcia. |
| IndentSize |
Pobiera lub ustawia liczbę spacji w wcięcie. |
| Listeners |
Pobiera kolekcję odbiorników monitorujących dane wyjściowe śledzenia. |
| UseGlobalLock |
Pobiera lub ustawia wartość wskazującą, czy należy użyć globalnej blokady. |
Metody
| Nazwa | Opis |
|---|---|
| Assert(Boolean, String, String) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean, String) |
Sprawdza warunek; Jeśli warunek to |
| Assert(Boolean) |
Sprawdza warunek; jeśli warunek to |
| Close() |
Opróżnia bufor wyjściowy, a następnie zamyka Listenersplik . |
| Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
| Fail(String, String) |
Emituje komunikat o błędzie i szczegółowy komunikat o błędzie. |
| Fail(String) |
Emituje określony komunikat o błędzie. |
| Flush() |
Opróżnia bufor wyjściowy i powoduje zapisanie buforowanych danych w obiekcie Listeners. |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| Indent() |
Zwiększa prąd IndentLevel o jeden. |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
| Refresh() |
Odświeża dane konfiguracji śledzenia. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
| TraceError(String, Object[]) |
Zapisuje komunikat o błędzie do odbiorników śledzenia w Listeners kolekcji przy użyciu określonej tablicy obiektów i informacji o formatowaniu. |
| TraceError(String) |
Zapisuje komunikat o błędzie do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu. |
| TraceInformation(String, Object[]) |
Zapisuje komunikat informacyjny do odbiorników śledzenia w Listeners kolekcji przy użyciu określonej tablicy obiektów i informacji formatowania. |
| TraceInformation(String) |
Zapisuje komunikat informacyjny do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu. |
| TraceWarning(String, Object[]) |
Zapisuje komunikat ostrzegawczy do odbiorników śledzenia w Listeners kolekcji przy użyciu określonej tablicy obiektów i informacji o formatowaniu. |
| TraceWarning(String) |
Zapisuje komunikat ostrzegawczy do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu. |
| Unindent() |
Zmniejsza bieżącą liczbę IndentLevel o jedną. |
| Write(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji. |
| Write(Object) |
Zapisuje wartość metody obiektu ToString() dla odbiorników śledzenia w kolekcji Listeners . |
| Write(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners . |
| Write(String) |
Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners . |
| WriteIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, Object) |
Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLine(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji. |
| WriteLine(Object) |
Zapisuje wartość metody obiektu ToString() dla odbiorników śledzenia w kolekcji Listeners . |
| WriteLine(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners . |
| WriteLine(String) |
Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners . |
| WriteLineIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, Object) |
Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
| WriteLineIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
Zdarzenia
| Nazwa | Opis |
|---|---|
| Refreshing |
Występuje, gdy należy odświeżyć element TraceSource z konfiguracji. |
Dotyczy
Bezpieczeństwo wątkowe
Ten typ jest bezpieczny wątkiem.