Udostępnij za pośrednictwem


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 /DTRACE when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main()
{
   #if defined(TRACE)
   Trace::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Trace::AutoFlush = true;
   Trace::Indent();
   Trace::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(TRACE)
   Trace::WriteLine( "Exiting Main" );
   Trace::Unindent();
   #endif
   return 0;
}
// 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

Do instrumentowania kompilacji wydania można użyć właściwości i metod w Trace klasie . 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 potwierdzenia, które zawsze Failbędzie . Ta klasa udostępnia metody zapisu w następujących odmianach:

Klasy BooleanSwitch i TraceSwitch zapewniają środki dynamicznego sterowania danymi wyjściowymi śledzenia. W .NET Framework aplikacji 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 przy użyciu pliku konfiguracji, zobacz Switch klasę i Instrukcje: Twórca, Inicjowanie i Konfigurowanie przełączników śledzenia.

Element docelowy danych wyjściowych śledzenia można dostosować, dodając TraceListener wystąpienia do kolekcji lub usuwając je z kolekcji Listeners . Kolekcja Listeners jest udostępniana zarówno Debug przez klasy , jak 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 .

Uwaga

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 ich wyliczyć w tym temacie. Przydatne może być umieszczenie wywołań Trace metod w blokach w try/catch celu wykrywania i obsługi wyjątków od odbiorników śledzenia.

Uwaga

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 programie 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 pobranie lub ustawienie poziomu Indent elementów i IndentSizeoraz określenie, czy ma to być AutoFlush po każdym zapisie.

W .NET Framework aplikacji można ustawić parametr AutoFlush i IndentSize , 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ń 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.

Uwaga

W projektach programu Visual Studio domyślnie DEBUG symbol kompilacji warunkowej jest definiowany dla kompilacji debugowania, a TRACE symbol jest definiowany zarówno dla kompilacji debugowania, jak i kompilacji 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 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

AutoFlush

Pobiera lub ustawia, czy Flush() powinny być wywoływane Listeners na po każdym zapisie.

CorrelationManager

Pobiera menedżera korelacji dla wątku dla tego śledzenia.

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

Assert(Boolean)

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

Assert(Boolean, String)

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

Assert(Boolean, String, String)

Sprawdza warunek; Jeśli warunek to false, zwraca dwa określone komunikaty i wyświetla okno komunikatu, które pokazuje stos wywołań.

Close()

Opróżnia bufor wyjściowy, a następnie zamyka element Listeners.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Fail(String)

Emituje określony komunikat o błędzie.

Fail(String, String)

Emituje komunikat o błędzie i szczegółowy 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()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Indent()

Zwiększa prąd IndentLevel o jeden.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Refresh()

Odświeża dane konfiguracji śledzenia.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TraceError(String)

Zapisuje komunikat o błędzie do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu.

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.

TraceInformation(String)

Zapisuje komunikat informacyjny 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 o formatowaniu.

TraceWarning(String)

Zapisuje komunikat ostrzegawczy 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.

Unindent()

Zmniejsza prąd IndentLevel o jeden.

Write(Object)

Zapisuje wartość metody obiektu ToString() w odbiornikach śledzenia w kolekcji Listeners .

Write(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji.

Write(String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners .

Write(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteIf(Boolean, Object)

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

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, String)

Zapisuje komunikat 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.

WriteLine(Object)

Zapisuje wartość metody obiektu ToString() w odbiornikach śledzenia w kolekcji Listeners .

WriteLine(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji.

WriteLine(String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteLine(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteLineIf(Boolean, Object)

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

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, String)

Zapisuje komunikat 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.

Zdarzenia

Refreshing

Występuje, gdy należy odświeżyć element TraceSource z konfiguracji.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.

Zobacz też