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 Ablaufverfolgungsausgabe und die Trace.IndentTrace.Unindent Methoden unterschieden. Ein vollständiges Beispiel für die Verwendung von " finden Sie unter How to: Add Trace Statements to Application Code.For a complete example of the use of Trace, see How to: Add Trace Statements to Application Code.

// 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. Mithilfe der Ablaufverfolgung können Sie Probleme isolieren und beheben, ohne ein laufendes System zu stören.

Diese Klasse stellt Methoden zum Anzeigen eines Assert Dialogfelds bereit und gibt eine Assertion aus, die immer Failausgegeben wird. Diese Klasse stellt Schreibmethoden in den folgenden Variationen bereit:

Die BooleanSwitch Klassen TraceSwitch bieten Mittel, um die Ablaufverfolgungsausgabe dynamisch zu steuern. In .NET Framework-Apps können Sie die Werte dieser Switches ändern, ohne die Anwendung neu zu kompilieren. Informationen zur Verwendung der Konfigurationsdatei zum Festlegen eines Switches in einer .NET Framework-App finden Sie in der klasse Switch und How to: Create, Initialize, and Configure Trace Switches.

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

Note

Das Hinzufügen eines Ablaufverfolgungs-Listeners zur Auflistung kann dazu führen, dass während der Listeners Ablaufverfolgung eine Ausnahme ausgelöst wird, wenn eine ressource, die vom Ablaufverfolgungslistener verwendet wird, 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 hilfreich sein, Aufrufe an die Trace Methoden in try/catch Blöcken zu platzieren, um Ausnahmen von Ablaufverfolgungslistenern zu erkennen und zu verarbeiten.

Note

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

Die Trace Klasse bietet Eigenschaften zum Abrufen oder Festlegen der Ebene von Indent und der IndentSize, und ob nach AutoFlush jedem Schreiben.

In .NET Framework-Apps können Sie die AutoFlush und IndentSize 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 Trace. Compiler, die Aufrufe dieser Methoden unterstützen ConditionalAttribute , es sei denn TRACE , sie sind als Symbol für die bedingte Kompilierung definiert. In der Dokumentation eines Compilers erfahren Sie, ob ConditionalAttribute unterstützt wird, und die Syntax zum Definieren eines Symbols für die bedingte Kompilierung.

Note

In Visual Studio Projekten ist standardmäßig das Symbol DEBUG bedingte Kompilierung für Debugbuilds definiert, und das Symbol TRACE wird 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 Compiler-Befehlszeile hinzu, wenn Sie den Code mithilfe einer Befehlszeile kompilieren oder oben in der Datei hinzufügen #define TRACE . Fügen Sie in Visual Basic der Compiler-Befehlszeile die /d:TRACE=True Option hinzu, oder fügen Sie 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 Trace eines #if defined(TRACE) ... #endif Blocks einschließen und der Compiler-Befehlszeile die /DTRACE Option hinzufügen oder der Datei hinzufügen #define TRACE .

Eigenschaften

Name Beschreibung
AutoFlush

Ruft ab oder legt fest, ob Flush() nach jedem Schreiben aufgerufen Listeners werden soll.

CorrelationManager

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

IndentLevel

Dient zum Abrufen oder Festlegen der Einzugsebene.

IndentSize

Dient zum Abrufen oder Festlegen der Anzahl von Leerzeichen in einem Einzug.

Listeners

Ruft die Sammlung von Listenern ab, die die Ablaufverfolgungsausgabe überwachen.

UseGlobalLock

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die globale Sperre verwendet werden soll.

Methoden

Name Beschreibung
Assert(Boolean, String, String)

Sucht nach einer Bedingung; wenn die Bedingung lautet false, gibt zwei angegebene Nachrichten aus und zeigt ein Meldungsfeld an, in dem der Aufrufstapel angezeigt wird.

Assert(Boolean, String)

Sucht nach einer Bedingung; wenn die Bedingung lautet false, gibt eine angegebene Nachricht aus und zeigt ein Meldungsfeld an, in dem der Aufrufstapel angezeigt wird.

Assert(Boolean)

Sucht nach einer Bedingung; wenn die Bedingung lautet false, wird ein Meldungsfeld mit dem Aufrufstapel angezeigt.

Close()

Löscht den Ausgabepuffer und schließt dann den Listeners.

Equals(Object)

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

(Geerbt von Object)
Fail(String, String)

Gibt eine Fehlermeldung und eine detaillierte Fehlermeldung aus.

Fail(String)

Gibt die angegebene Fehlermeldung aus.

Flush()

Löscht den Ausgabepuffer und bewirkt, dass gepufferte Daten in die ListenersDatei geschrieben werden.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
Indent()

Erhöht den Aktuellen um eins IndentLevel .

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Refresh()

Aktualisiert die Ablaufverfolgungskonfigurationsdaten.

ToString()

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

(Geerbt von Object)
TraceError(String, Object[])

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

TraceError(String)

Schreibt eine Fehlermeldung in die Ablaufverfolgungslistener in der Listeners Auflistung mithilfe der angegebenen Nachricht.

TraceInformation(String, Object[])

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

TraceInformation(String)

Schreibt eine Informationsmeldung in die Ablaufverfolgungslistener in der Listeners Auflistung mithilfe der angegebenen Nachricht.

TraceWarning(String, Object[])

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

TraceWarning(String)

Schreibt eine Warnmeldung in die Ablaufverfolgungslistener in der Listeners Auflistung mithilfe der angegebenen Nachricht.

Unindent()

Verringert den Aktuellen IndentLevel um einen.

Write(Object, String)

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

Write(Object)

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

Write(String, String)

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

Write(String)

Schreibt eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung.

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

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

WriteIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Nachricht in die Listener der Ablaufverfolgung in der Listeners Auflistung, wenn eine Bedingung lautet true.

WriteIf(Boolean, String)

Schreibt eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung, wenn eine Bedingung lautet true.

WriteLine(Object, String)

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

WriteLine(Object)

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

WriteLine(String, String)

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

WriteLine(String)

Schreibt eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung.

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Nachricht in die Listener der Ablaufverfolgung in der Listeners Auflistung, wenn eine Bedingung lautet true.

WriteLineIf(Boolean, String)

Schreibt eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung, wenn eine Bedingung lautet true.

Gilt für:

Threadsicherheit

Dieser Typ ist threadsicher.

Weitere Informationen