Trace Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
Assert(Boolean, String) |
Sprawdza warunek; Jeśli warunek to |
Assert(Boolean, String, String) |
Sprawdza warunek; Jeśli warunek to |
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 |
WriteIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
WriteIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
WriteIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
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 |
WriteLineIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
WriteLineIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
WriteLineIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to |
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.