Trace Klasa

Definicja

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 false, zwraca dwa określone komunikaty i wyświetla pole komunikatu, które pokazuje stos wywołań.

Assert(Boolean, String)

Sprawdza warunek; Jeśli warunek to false, zwraca określony komunikat i wyświetla pole komunikatu, które wyświetla stos wywołań.

Assert(Boolean)

Sprawdza warunek; jeśli warunek to false, wyświetla pole komunikatu, które pokazuje stos wywołań.

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 true.

WriteIf(Boolean, Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

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 true.

WriteLineIf(Boolean, Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteLineIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteLineIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

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.

Zobacz też