Trace Klasse

Definition

Stellt eine Reihe von Methoden und Eigenschaften für das Verfolgen der Ausführung von Code bereit. Diese Klasse kann nicht vererbt werden.

public ref class Trace sealed
public sealed class Trace
type Trace = class
Public NotInheritable Class Trace
Vererbung
Trace

Beispiele

Im folgenden Beispiel wird Trace verwendet, um den Anfang und das Ende der Ausführung eines Programms anzugeben. Im Beispiel werden auch die Trace.Indent Methoden und Trace.Unindent verwendet, um die Ablaufverfolgungsausgabe zu unterscheiden. Ein vollständiges Beispiel für die Verwendung von finden Sie unter Vorgehensweise: Hinzufügen vonTrace Ablaufverfolgungsanweisungen zum Anwendungscode.

// 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

Hinweise

Sie können die Eigenschaften und Methoden in der Trace -Klasse verwenden, um Releasebuilds zu instrumentieren. Mit der Instrumentierung können Sie die Integrität Ihrer Anwendung überwachen, die in realen Einstellungen ausgeführt wird. Die Ablaufverfolgung hilft Ihnen, Probleme zu isolieren und zu beheben, ohne ein ausgeführtes System zu stören.

Diese Klasse stellt Methoden zum Anzeigen eines Dialogfelds Assert und zum Ausgeben einer Assertion bereit, die immer Failerfolgt. Diese Klasse stellt Schreibmethoden in den folgenden Variationen bereit:

Die BooleanSwitch Klassen und TraceSwitch bieten Mittel zum dynamischen Steuern der Ablaufverfolgungsausgabe. In .NET Framework-Apps können Sie die Werte dieser Switches ändern, ohne Ihre Anwendung neu zu kompilieren. Informationen zur Verwendung der Konfigurationsdatei zum Festlegen eines Schalters in einer .NET Framework-App finden Sie in der Switch Klasse und Vorgehensweise: Create, Initialisieren und Konfigurieren von Ablaufverfolgungsswitches.

Sie können das Ziel der Ablaufverfolgungsausgabe anpassen, indem Sie Der Auflistung Instanzen hinzufügen TraceListener oder aus ihnen Listeners entfernen. Die Listeners Auflistung wird sowohl von der Debug -Klasse als auch von der Trace -Klasse gemeinsam verwendet. Durch das Hinzufügen eines Ablaufverfolgungslisteners zu beiden Klassen wird der Listener beiden hinzugefügt. Standardmäßig wird die Ablaufverfolgungsausgabe mithilfe der DefaultTraceListener -Klasse ausgegeben.

Hinweis

Das Hinzufügen eines Ablaufverfolgungslisteners zur Auflistung kann dazu führen, dass während der Listeners Ablaufverfolgung eine Ausnahme ausgelöst wird, wenn eine vom Ablaufverfolgungslistener verwendete Ressource nicht verfügbar ist. Die Bedingungen und die ausgelöste Ausnahme hängen vom Ablaufverfolgungslistener ab und können in diesem Thema nicht aufgezählt werden. Es kann nützlich sein, Aufrufe der Trace Methoden in try/catch Blöcken zu platzieren, um alle Ausnahmen von Ablaufverfolgungslistenern zu erkennen und zu behandeln.

Hinweis

Wenn Sie Ablaufverfolgungslistener zu teilweise vertrauenswürdigem Code hinzufügen, erhalten Sie eine SecurityException Ausnahme, da das Hinzufügen von Ablaufverfolgungslistenern berechtigungen erfordert UnmanagedCode . Um teilweise vertrauenswürdigen Code nachzuverfolgen, der in einer Sandbox in Visual Studio ausgeführt wird, fügen Sie keine Ablaufverfolgungslistener hinzu. Zeigen Sie stattdessen die Trace Nachrichten und Debug im Ausgabefenster an.

Die Trace -Klasse bietet Eigenschaften zum Abrufen oder Festlegen der Ebene von Indent und des IndentSizeund AutoFlush nach jedem Schreibvorgang.

In .NET Framework-Apps können Sie und AutoFlushIndentSize für Trace festlegen, indem Sie die Konfigurationsdatei bearbeiten, die dem Namen Ihrer Anwendung entspricht. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert werden:

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="3" />  
  </system.diagnostics>  
</configuration>  

Das ConditionalAttribute -Attribut wird auf die Methoden von Traceangewendet. Compiler, die Aufrufe dieser Methoden unterstützen ConditionalAttribute , ignorieren, es sei denn TRACE , sie sind als Symbol für die bedingte Kompilierung definiert. Lesen Sie die Dokumentation eines Compilers, um zu ermitteln, ob ConditionalAttribute unterstützt wird, und die Syntax zum Definieren eines Symbols für die bedingte Kompilierung.

Hinweis

In Visual Studio-Projekten wird standardmäßig das Symbol für die DEBUG bedingte Kompilierung für Debugbuilds definiert, und das TRACE Symbol ist sowohl für Debug- als auch für Releasebuilds definiert.

Um das Symbol für die TRACE bedingte Kompilierung in C# zu definieren, fügen Sie die /d:TRACE Option zur Compilerbefehlszeile hinzu, wenn Sie Ihren Code mithilfe einer Befehlszeile kompilieren, oder fügen Sie am Anfang der Datei hinzu #define TRACE . Fügen Sie in Visual Basic der Compiler-Befehlszeile die /d:TRACE=True Option hinzu, oder fügen Sie der Datei hinzu #Const TRACE=True .

ConditionalAttribute wird vom C++-Compiler nicht unterstützt. Um gleichwertige Funktionen bereitzustellen, müssen Sie Aufrufe der Methoden von Trace in einen #if defined(TRACE) ... #endif Block einschließen und die /DTRACE Option der Compiler-Befehlszeile hinzufügen oder der Datei hinzufügen #define TRACE .

Eigenschaften

AutoFlush

Ruft die Information ab, ob Flush() nach jedem Schreibvorgang für Listeners aufgerufen werden soll, oder legt diese fest.

CorrelationManager

Ruft den Korrelations-Manager für den Thread für diese Ablaufverfolgung ab.

IndentLevel

Ruft die Einzugsebene ab oder legt diese fest.

IndentSize

Ruft die Anzahl der Leerzeichen in einem Einzug ab oder legt diese fest.

Listeners

Ruft die Auflistung der Listener ab, durch die die Ausgabe der Ablaufverfolgung überwacht wird.

UseGlobalLock

Ruft einen Wert ab, der angibt, ob die globale Sperre verwendet werden soll, oder legt diesen Wert fest.

Methoden

Assert(Boolean)

Überprüft eine Bedingung. Wenn die Bedingung false ist, wird ein Meldungsfeld mit der Aufrufliste angezeigt.

Assert(Boolean, String)

Überprüft eine Bedingung. Wenn die Bedingung false ist, wird eine angegebene Meldung ausgegeben, und es wird ein Meldungsfeld mit der Aufrufliste angezeigt.

Assert(Boolean, String, String)

Überprüft eine Bedingung. Wenn die Bedingung false ist, werden zwei angegebene Meldungen ausgegeben, und es wird ein Meldungsfeld mit der Aufrufliste angezeigt.

Close()

Leert den Ausgabepuffer und schließt dann die Listeners.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fail(String)

Gibt die angegebene Fehlermeldung aus.

Fail(String, String)

Gibt eine Fehlermeldung sowie eine detaillierte Fehlermeldung aus.

Flush()

Leert den Ausgabepuffer und führt dazu, dass gepufferte Daten in die Listeners geschrieben werden.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Indent()

Erhöht die aktuelle IndentLevel um 1.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Refresh()

Aktualisiert die Konfigurationsdaten für die Ablaufverfolgung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TraceError(String)

Schreibt eine Fehlermeldung unter Verwendung der angegebenen Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

TraceError(String, Object[])

Schreibt eine Fehlermeldung unter Verwendung des angegebenen Arrays von Objekten und der Formatierungsinformationen in die Ablaufverfolgungslistener in der Listeners-Auflistung.

TraceInformation(String)

Schreibt eine Informationsmeldung unter Verwendung der angegebenen Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

TraceInformation(String, Object[])

Schreibt eine Informationsmeldung unter Verwendung des angegebenen Arrays von Objekten und der Formatierungsinformationen in die Ablaufverfolgungslistener in der Listeners-Auflistung.

TraceWarning(String)

Schreibt eine Warnmeldung unter Verwendung der angegebenen Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

TraceWarning(String, Object[])

Schreibt eine Warnmeldung unter Verwendung des angegebenen Arrays von Objekten und der Formatierungsinformationen in die Ablaufverfolgungslistener in der Listeners-Auflistung.

Unindent()

Verringert die aktuelle IndentLevel um 1.

Write(Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung.

Write(Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in den Ablaufverfolgungslistener in der Listeners-Auflistung.

Write(String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

Write(String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

WriteIf(Boolean, Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteLine(Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung.

WriteLine(Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in den Ablaufverfolgungslistener in der Listeners-Auflistung.

WriteLine(String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

WriteLine(String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung.

WriteLineIf(Boolean, Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteLineIf(Boolean, Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteLineIf(Boolean, String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteLineIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

Ereignisse

Refreshing

Tritt auf, wenn eine TraceSource von der Konfiguration aktualisiert werden muss.

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.

Weitere Informationen