Trace Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 der Anfang und das Ende der Ausführung eines Programms angegeben. Im Beispiel werden auch die Trace.Indent Methoden und Trace.Unindent Methoden verwendet, um die Ablaufverfolgungsausgabe zu unterscheiden. Ein vollständiges Beispiel für die Verwendung von Trace" How to: Add Trace Statements to Application Code" finden Sie unter "How to: Add Trace Statements to Application Code".
// 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 Versionsversionen zu instrumentieren. Mit der Instrumentierung können Sie den Status Ihrer Anwendung überwachen, die in realen Einstellungen ausgeführt wird. Mithilfe der Ablaufverfolgung können Sie Probleme isolieren und beheben, ohne ein ausgeführtes System zu stören.
Diese Klasse bietet Methoden zum Anzeigen eines Assert Dialogfelds und zum Ausgeben einer Assertion, die immer ausgeführt Failwird. Diese Klasse stellt Schreibmethoden in den folgenden Variationen bereit:
Die BooleanSwitch und TraceSwitch Klassen bieten Mittel, um die Ablaufverfolgungsausgabe dynamisch zu steuern. In .NET Framework Apps können Sie die Werte dieser Schalter ä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: Erstellen, Initialisieren und Konfigurieren von Ablaufverfolgungsschaltern.
Sie können das Ziel der Ablaufverfolgungsausgabe anpassen, indem Sie Instanzen zu oder Entfernen von Instanzen aus der Listeners Auflistung hinzufügenTraceListener. Die Listeners Auflistung wird sowohl von den Debug Klassen als auch von den Trace Klassen freigegeben. Durch hinzufügen eines Ablaufverfolgungslisteners zu beiden Klassen wird der Listener hinzugefügt. Standardmäßig wird die Ablaufverfolgungsausgabe mithilfe der DefaultTraceListener Klasse ausgegeben.
Hinweis
Das Hinzufügen eines Ablaufverfolgungslisteners zur Listeners Auflistung kann dazu führen, dass während der 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 behandeln.
Hinweis
Wenn Sie Ablaufverfolgungslistener zu teilweise vertrauenswürdigem Code hinzufügen, erhalten Sie eine SecurityException Ausnahme, da das Hinzufügen von Ablaufverfolgungslistenern die Berechtigung erfordert UnmanagedCode . Um teilweise vertrauenswürdigen Code zu verfolgen, der in einem Sandkasten in Visual Studio ausgeführt wird, fügen Sie keine Ablaufverfolgungslistener hinzu. Zeigen Sie stattdessen die und Debug die Trace Nachrichten im Ausgabefenster an.
Die Trace Klasse bietet Eigenschaften zum Abrufen oder Festlegen der Indent Ebene und des IndentSize, und ob AutoFlush nach jedem Schreibvorgang.
In .NET Framework Apps können Sie die AutoFlush Konfigurationsdatei, die dem Namen Ihrer Anwendung entspricht, festlegen und IndentSize bearbeitenTrace. 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 , werden nur TRACE
dann als Symbol für die bedingte Kompilierung definiert. Weitere Informationen finden Sie in der Dokumentation eines Compilers, um zu bestimmen, ob ConditionalAttribute und die Syntax zum Definieren eines Symbols für die bedingte Kompilierung unterstützt wird.
Hinweis
In Visual Studio Projekten ist standardmäßig das Symbol für die DEBUG
bedingte Kompilierung für Debugbuilds definiert, und das TRACE
Symbol 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 Compilerbefehlszeile hinzu, wenn Sie Ihren Code mithilfe einer Befehlszeile kompilieren oder oben in der Datei hinzufügen #define TRACE
. Fügen Sie in Visual Basic die /d:TRACE=True
Option zur Compilerbefehlszeile 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 in Trace einen #if defined(TRACE) ... #endif
Block einschließen und der Compilerbefehlszeile die /DTRACE
Option 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 |
Assert(Boolean, String) |
Überprüft eine Bedingung. Wenn die Bedingung |
Assert(Boolean, String, String) |
Überprüft eine Bedingung. Wenn die Bedingung |
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 |
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 |
WriteIf(Boolean, String) |
Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung |
WriteIf(Boolean, String, String) |
Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung |
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 |
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 |
WriteLineIf(Boolean, String) |
Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung |
WriteLineIf(Boolean, String, String) |
Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung |
Gilt für
Threadsicherheit
Dieser Typ ist threadsicher.