Trace Klasa

Definicja

Zawiera zestaw metod i właściwości, które ułatwiają śledzenie wykonywania kodu.Provides a set of methods and properties that help you trace the execution of your code. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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

Przykłady

Poniższy przykład używa Trace do wskazania początku i końca wykonywania programu.The following example uses Trace to indicate the beginning and the end of a program's execution. W przykładzie zastosowano również Trace.Indent metody i, Trace.Unindent Aby odróżnić dane wyjściowe śledzenia.The example also uses the Trace.Indent and Trace.Unindent methods to distinguish the tracing output. Aby zapoznać się z bardziej kompletnym przykładem użycia programu Trace , zobacz How to: Dodawanie instrukcji Trace do kodu aplikacji.For a more complete example of the use of Trace, see 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

Uwagi

Możesz użyć właściwości i metod w Trace klasie, aby instrumentować kompilacje wydań.You can use the properties and methods in the Trace class to instrument release builds. Instrumentacja umożliwia monitorowanie kondycji aplikacji działającej w ustawieniach czasu rzeczywistego.Instrumentation allows you to monitor the health of your application running in real-life settings. Śledzenie pomaga wyizolować problemy i rozwiązać je bez zakłócania działającego systemu.Tracing helps you isolate problems and fix them without disturbing a running system.

Ta klasa dostarcza metody do wyświetlania Assert okna dialogowego, a także do emisji potwierdzenia, który będzie zawsze Fail .This class provides methods to display an Assert dialog box, and to emit an assertion that will always Fail. Ta klasa dostarcza metody zapisu w następujących odmianach: Write , WriteLine , WriteIf i WriteLineIf .This class provides write methods in the following variations: Write, WriteLine, WriteIf, and WriteLineIf.

BooleanSwitchKlasy i TraceSwitch zapewniają metodę dynamicznego kontrolowania danych wyjściowych śledzenia.The BooleanSwitch and TraceSwitch classes provide means to dynamically control the tracing output. Wartości tych przełączników można modyfikować bez ponownego kompilowania aplikacji.You can modify the values of these switches without recompiling your application. Aby uzyskać informacje na temat korzystania z pliku konfiguracji w celu ustawienia przełącznika, zobacz Switch temat Klasa i instrukcje: Tworzenie, inicjowanie i konfigurowanie przełączników śledzenia .For information on using the configuration file to set a switch, see the Switch class and the How to: Create, Initialize and Configure Trace Switches topic.

Można dostosować cel śledzenia danych wyjściowych, dodając TraceListener wystąpienia do lub usuwając wystąpienia z Listeners kolekcji.You can customize the tracing output's target by adding TraceListener instances to or removing instances from the Listeners collection. ListenersKolekcja jest współdzielona przez Debug i Trace klasy; dodanie detektora śledzenia do każdej klasy powoduje dodanie odbiornika do obu tych klas.The Listeners collection is shared by both the Debug and the Trace classes; adding a trace listener to either class adds the listener to both. Domyślnie dane wyjściowe śledzenia są emitowane przy użyciu DefaultTraceListener klasy.By default, trace output is emitted using the DefaultTraceListener class.

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.Adding a trace listener to the Listeners collection can cause an exception to be thrown while tracing, if a resource used by the trace listener is not available. Warunki i zgłoszone wyjątki zależą od odbiornika śledzenia i nie mogą być wyliczane w tym temacie.The conditions and the exception thrown depend on the trace listener and cannot be enumerated in this topic. Przydatne może być umieszczenie wywołań Trace metod w try / catch blokach w celu wykrywania i obsługi dowolnego wyjątku od detektorów śledzenia.It may be useful to place calls to the Trace methods in try/catch blocks to detect and handle any exceptions from trace listeners.

Uwaga

Jeśli dodasz detektory śledzenia do częściowo zaufanego kodu, zostanie wyświetlony SecurityException wyjątek, ponieważ dodanie detektorów śledzenia wymaga UnmanagedCode uprawnienia.If you add trace listeners to partially trusted code, you will get a SecurityException exception, because adding trace listeners requires UnmanagedCode permission. Aby śledzić częściowo zaufany kod, który działa w piaskownicy w programie Visual Studio, nie należy dodawać detektorów śledzenia.To trace partially trusted code that is running in a sandbox in Visual Studio, do not add trace listeners. Zamiast tego należy wyświetlić Trace Debug komunikaty i w oknie danych wyjściowych .Instead, view the Trace and Debug messages in the Output window.

TraceKlasa zawiera właściwości, które umożliwiają pobieranie lub Ustawianie poziomu Indent , IndentSize i czy AutoFlush po każdym zapisie.The Trace class provides properties to get or set the level of Indent, the IndentSize, and whether to AutoFlush after each write.

Aby ustawić AutoFlush i IndentSize dla, można Trace edytować plik konfiguracji, który odnosi się do nazwy aplikacji.To set the AutoFlush and IndentSize for Trace, you can edit the configuration file that corresponds to the name of your application. Plik konfiguracji powinien być sformatowany w następujący sposób:The configuration file should be formatted like the following example:

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

Ten ConditionalAttribute atrybut jest stosowany do metod Trace .The ConditionalAttribute attribute is applied to the methods of Trace. Kompilatory, które obsługują ConditionalAttribute ignorują wywołania tych metod, chyba że "Trace" jest zdefiniowany jako symbol kompilacji warunkowej.Compilers that support ConditionalAttribute ignore calls to these methods unless "TRACE" is defined as a conditional compilation symbol. Zapoznaj się z dokumentacją kompilatora, aby określić, czy ConditionalAttribute jest obsługiwana i składnia definiująca symbol kompilacji warunkowej.Refer to a compiler's documentation to determine whether ConditionalAttribute is supported and the syntax for defining a conditional compilation symbol.

Uwaga

W projektach programu Visual Studio domyślnie, "Debugowanie" symbol kompilacji warunkowej jest zdefiniowany dla kompilacji debugowania, a symbol "TRACE" jest zdefiniowany dla kompilacji debugowania i wydania.In Visual Studio projects, by default, the "DEBUG" conditional compilation symbol is defined for debug builds, and the "TRACE" symbol is defined for both debug and release builds. Aby uzyskać informacje na temat sposobu wyłączania tego zachowania, zobacz dokumentację programu Visual Studio.For information about how to disable this behavior, see the Visual Studio documentation.

Aby zdefiniować symbol kompilacji warunkowej "TRACE" w języku C#, Dodaj /d:TRACE opcję do wiersza polecenia kompilatora podczas kompilowania kodu przy użyciu wiersza polecenia lub Dodaj #define TRACE do góry pliku.To define the "TRACE" conditional compilation symbol in C#, add the /d:TRACE option to the compiler command line when you compile your code using a command line, or add #define TRACE to the top of your file. W Visual Basic Dodaj /d:TRACE=True opcję do wiersza polecenia kompilatora lub Dodaj #Const TRACE=True do pliku.In Visual Basic, add the /d:TRACE=True option to the compiler command line or add #Const TRACE=True to the file.

ConditionalAttribute nie jest obsługiwany przez kompilator języka C++.ConditionalAttribute is not supported by the C++ compiler. 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 poleceń kompilatora lub dodać #define TRACE do pliku.To provide equivalent functionality, you must enclose calls to the methods of Trace in an #if defined(TRACE) ... #endif block, and add the /DTRACE option to the compiler command line or add #define TRACE to the file.

Właściwości

AutoFlush

Pobiera lub ustawia Flush() , czy ma być wywoływana przy Listeners każdym zapisie.Gets or sets whether Flush() should be called on the Listeners after every write.

CorrelationManager

Pobiera Menedżera korelacji dla wątku dla tego śladu.Gets the correlation manager for the thread for this trace.

IndentLevel

Pobiera lub ustawia poziom wcięcia.Gets or sets the indent level.

IndentSize

Pobiera lub ustawia liczbę spacji w wcięcie.Gets or sets the number of spaces in an indent.

Listeners

Pobiera kolekcję odbiorników monitorujących dane wyjściowe śledzenia.Gets the collection of listeners that is monitoring the trace output.

UseGlobalLock

Pobiera lub ustawia wartość wskazującą, czy globalna blokada powinna zostać użyta.Gets or sets a value indicating whether the global lock should be used.

Metody

Assert(Boolean)

Sprawdza warunek; Jeśli warunek ma wartość false , wyświetla okno komunikatu, które pokazuje stos wywołań.Checks for a condition; if the condition is false, displays a message box that shows the call stack.

Assert(Boolean, String)

Sprawdza warunek; Jeśli warunek ma wartość false , wyprowadza określony komunikat i wyświetla okno komunikatu, które zawiera stos wywołań.Checks for a condition; if the condition is false, outputs a specified message and displays a message box that shows the call stack.

Assert(Boolean, String, String)

Sprawdza warunek; Jeśli warunek to false , wyprowadza dwa określone komunikaty i wyświetla okno komunikatu, które pokazuje stos wywołań.Checks for a condition; if the condition is false, outputs two specified messages and displays a message box that shows the call stack.

Close()

Opróżnia bufor wyjściowy, a następnie zamyka Listeners .Flushes the output buffer, and then closes the Listeners.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Fail(String)

Emituje określony komunikat o błędzie.Emits the specified error message.

Fail(String, String)

Emituje komunikat o błędzie i szczegółowy komunikat o błędzie.Emits an error message, and a detailed error message.

Flush()

Opróżnia bufor wyjściowy i powoduje, że dane buforowane są zapisywane w Listeners .Flushes the output buffer, and causes buffered data to be written to the Listeners.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
Indent()

Zwiększa bieżącą IndentLevel o jeden.Increases the current IndentLevel by one.

MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Refresh()

Odświeża dane konfiguracji śledzenia.Refreshes the trace configuration data.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TraceError(String)

Zapisuje komunikat o błędzie do detektorów śledzenia w Listeners kolekcji przy użyciu określonego komunikatu.Writes an error message to the trace listeners in the Listeners collection using the specified message.

TraceError(String, Object[])

Zapisuje komunikat o błędzie do detektorów śledzenia w Listeners kolekcji przy użyciu określonej tablicy obiektów i informacji o formatowaniu.Writes an error message to the trace listeners in the Listeners collection using the specified array of objects and formatting information.

TraceInformation(String)

Zapisuje komunikat informacyjny do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu.Writes an informational message to the trace listeners in the Listeners collection using the specified message.

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.Writes an informational message to the trace listeners in the Listeners collection using the specified array of objects and formatting information.

TraceWarning(String)

Zapisuje komunikat ostrzegawczy do odbiorników śledzenia w Listeners kolekcji przy użyciu określonego komunikatu.Writes a warning message to the trace listeners in the Listeners collection using the specified message.

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.Writes a warning message to the trace listeners in the Listeners collection using the specified array of objects and formatting information.

Unindent()

Zmniejsza bieżącą wartość IndentLevel o jeden.Decreases the current IndentLevel by one.

Write(Object)

Zapisuje wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection.

Write(Object, String)

Zapisuje nazwę kategorii i wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection.

Write(String)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji.Writes a message to the trace listeners in the Listeners collection.

Write(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji.Writes a category name and a message to the trace listeners in the Listeners collection.

WriteIf(Boolean, Object)

Zapisuje wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji, jeśli jest spełniony warunek true .Writes the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, Object, String)

Zapisuje nazwę kategorii i wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji, jeśli jest spełniony warunek true .Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji, Listeners Jeśli jest spełniony warunek true .Writes a message to the trace listeners in the Listeners collection if a condition is true.

WriteIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do detektorów śledzenia w kolekcji, Listeners Jeśli jest spełniony warunek true .Writes a category name and message to the trace listeners in the Listeners collection if a condition is true.

WriteLine(Object)

Zapisuje wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji.Writes the value of the object's ToString() method to the trace listeners in the Listeners collection.

WriteLine(Object, String)

Zapisuje nazwę kategorii i wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji.Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection.

WriteLine(String)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji.Writes a message to the trace listeners in the Listeners collection.

WriteLine(String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji.Writes a category name and message to the trace listeners in the Listeners collection.

WriteLineIf(Boolean, Object)

Zapisuje wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji, jeśli jest spełniony warunek true .Writes the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, Object, String)

Zapisuje nazwę kategorii i wartość ToString() metody obiektu do detektorów śledzenia w Listeners kolekcji, jeśli jest spełniony warunek true .Writes a category name and the value of the object's ToString() method to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w kolekcji, Listeners Jeśli jest spełniony warunek true .Writes a message to the trace listeners in the Listeners collection if a condition is true.

WriteLineIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do detektorów śledzenia w kolekcji, Listeners Jeśli jest spełniony warunek true .Writes a category name and message to the trace listeners in the Listeners collection if a condition is true.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.This type is thread safe.

Zobacz też