Udostępnij za pośrednictwem


ConsoleTraceListener Klasa

Definicja

Kieruje dane wyjściowe śledzenia lub debugowania do standardowego strumienia danych wyjściowych lub błędów.

public ref class ConsoleTraceListener : System::Diagnostics::TextWriterTraceListener
public class ConsoleTraceListener : System.Diagnostics.TextWriterTraceListener
type ConsoleTraceListener = class
    inherit TextWriterTraceListener
Public Class ConsoleTraceListener
Inherits TextWriterTraceListener
Dziedziczenie

Przykłady

Poniższy przykład kodu implementuje aplikację konsolową składającą się z klasy z dwiema metodami publicznymi.

Metoda Main analizuje argumenty wiersza polecenia i określa, czy dane wyjściowe śledzenia powinny być kierowane do standardowego strumienia błędów lub standardowego strumienia wyjściowego. Main tworzy i inicjuje ConsoleTraceListener obiekt dla określonego Console strumienia wyjściowego i dodaje ten obiekt do kolekcji odbiornika śledzenia. Następnie wywołuje metodę WriteEnvironmentInfoToTrace , która zapisuje szczegółowe informacje o środowisku wykonywania i konfiguracji odbiornika śledzenia do danych wyjściowych śledzenia.

Po uruchomieniu przykładowej aplikacji szczegóły konfiguracji środowiska i śledzenia są zapisywane w określonym strumieniu danych wyjściowych konsoli za ConsoleTraceListener pośrednictwem obiektu.

// Define the TRACE directive, which enables trace output to the
// Trace.Listeners collection. Typically, this directive is defined
// as a compilation argument.
#define TRACE
using System;
using System.Diagnostics;

public class ConsoleTraceSample
{

    // Define a simple method to write details about the current executing
    // environment to the trace listener collection.
    public static void WriteEnvironmentInfoToTrace()
    {

        string methodName = "WriteEnvironmentInfoToTrace";

        Trace.Indent();
        Trace.WriteLine(DateTime.Now.ToString() + " - Start of " + methodName);
        Trace.Indent();

        // Write details on the executing environment to the trace output.
        Trace.WriteLine("Operating system: " + System.Environment.OSVersion.ToString());
        Trace.WriteLine("Computer name: " + System.Environment.MachineName);
        Trace.WriteLine("User name: " + System.Environment.UserName);
        Trace.WriteLine("CLR runtime version: " + System.Environment.Version.ToString());
        Trace.WriteLine("Command line: " + System.Environment.CommandLine);

        // Enumerate the trace listener collection and
        // display details about each configured trace listener.
        Trace.WriteLine("Number of configured trace listeners = " + Trace.Listeners.Count.ToString());

        foreach (TraceListener tl in Trace.Listeners)
        {
            Trace.WriteLine("Trace listener name = " + tl.Name);
            Trace.WriteLine("               type = " + tl.GetType().ToString());
        }

        Trace.Unindent();
        Trace.WriteLine(DateTime.Now.ToString() + " - End of " + methodName);
        Trace.Unindent();
    }

    // Define the main entry point of this class.
    // The main method adds a console trace listener to the collection
    // of configured trace listeners, then writes details on the current
    // executing environment.
    public static void Main(string[] CmdArgs)
    {

        // Write a trace message to all configured trace listeners.
        Trace.WriteLine(DateTime.Now.ToString()+" - Start of Main");

        // Define a trace listener to direct trace output from this method
        // to the console.
        ConsoleTraceListener consoleTracer;

        // Check the command line arguments to determine which
        // console stream should be used for trace output.
        if ((CmdArgs.Length>0)&&(CmdArgs[0].ToString().ToLower().Equals("/stderr")))
            // Initialize the console trace listener to write
            // trace output to the standard error stream.
        {
            consoleTracer = new ConsoleTraceListener(true);
        }
        else
        {
            // Initialize the console trace listener to write
            // trace output to the standard output stream.
            consoleTracer = new ConsoleTraceListener();
        }
        // Set the name of the trace listener, which helps identify this
        // particular instance within the trace listener collection.
        consoleTracer.Name = "mainConsoleTracer";

        // Write the initial trace message to the console trace listener.
        consoleTracer.WriteLine(DateTime.Now.ToString()+" ["+consoleTracer.Name+"] - Starting output to trace listener.");

        // Add the new console trace listener to
        // the collection of trace listeners.
        Trace.Listeners.Add(consoleTracer);

        // Call a local method, which writes information about the current
        // execution environment to the configured trace listeners.
        WriteEnvironmentInfoToTrace();

        // Write the final trace message to the console trace listener.
        consoleTracer.WriteLine(DateTime.Now.ToString()+" ["+consoleTracer.Name+"] - Ending output to trace listener.");

        // Flush any pending trace messages, remove the
        // console trace listener from the collection,
        // and close the console trace listener.
        Trace.Flush();
        Trace.Listeners.Remove(consoleTracer);
        consoleTracer.Close();

        // Write a final trace message to all trace listeners.
        Trace.WriteLine(DateTime.Now.ToString()+" - End of Main");

        // Close all other configured trace listeners.
        Trace.Close();
    }
}
' Define the TRACE constant, which enables trace output to the 
' Trace.Listeners collection. Typically, this constant is defined
' as a compilation argument.
#Const TRACE = True

Imports System.Diagnostics

Public Class ConsoleTraceSample

    ' Define a simple method to write details about the current executing 
    ' environment to the trace listener collection.
    Public Shared Sub WriteEnvironmentInfoToTrace()

        Dim methodName As String = "WriteEnvironmentInfoToTrace"

        Trace.Indent()
        Trace.WriteLine(DateTime.Now.ToString() & " - Start of " & methodName)
        Trace.Indent()

        ' Write details on the executing environment to the trace output.
        Trace.WriteLine("Operating system: " & _
            System.Environment.OSVersion.ToString())
        Trace.WriteLine("Computer name: " & System.Environment.MachineName)
        Trace.WriteLine("User name: " & System.Environment.UserName)
        Trace.WriteLine("CLR version: " & System.Environment.Version.ToString)
        Trace.WriteLine("Command line: " & System.Environment.CommandLine)

        ' Enumerate the trace listener collection and 
        ' display details about each configured trace listener.
        Trace.WriteLine("Number of configured trace listeners = " & _
            Trace.Listeners.Count.ToString())

        Dim tl As TraceListener
        For Each tl In Trace.Listeners
            Trace.WriteLine("Trace listener name = " & tl.Name)
            Trace.WriteLine("               type = " & tl.GetType().ToString())
        Next tl

        Trace.Unindent()
        Trace.WriteLine(DateTime.Now.ToString() & " - End of " & methodName)
        Trace.Unindent()

    End Sub

    ' Define the main entry point of this class.
    ' The main method adds a console trace listener to the collection
    ' of configured trace listeners, then writes details on the current
    ' executing environment.
    Public Shared Sub Main(ByVal CmdArgs() As String)

        ' Write a trace message to all configured trace listeners.
        Trace.WriteLine(DateTime.Now.ToString() & " - Start of Main")

        ' Define a trace listener to direct trace output from this method
        ' to the console.
        Dim consoleTracer As ConsoleTraceListener

        ' Check the command line arguments to determine which
        ' console stream should be used for trace output.
        If (CmdArgs.Length > 0) AndAlso _
           (CmdArgs(0).ToLower.Equals("/stderr")) Then
            ' Initialize the console trace listener to write
            ' trace output to the standard error stream.
            consoleTracer = New ConsoleTraceListener(True)
        Else
            ' Initialize the console trace listener to write
            ' trace output to the standard output stream.
            consoleTracer = New ConsoleTraceListener
        End If
        ' Set the name of the trace listener, which helps identify this 
        ' particular instance within the trace listener collection.
        consoleTracer.Name = "mainConsoleTracer"

        ' Write the initial trace message to the console trace listener.
        consoleTracer.WriteLine(DateTime.Now.ToString() & " [" & _
             consoleTracer.Name & "] - Starting output to trace listener.")

        ' Add the new console trace listener to 
        ' the collection of trace listeners.
        Trace.Listeners.Add(consoleTracer)

        ' Call a local method, which writes information about the current 
        ' execution environment to the configured trace listeners.
        WriteEnvironmentInfoToTrace()

        ' Write the final trace message to the console trace listener.
        consoleTracer.WriteLine(DateTime.Now.ToString() & " [" & _
            consoleTracer.Name & "] - Ending output to trace listener.")

        ' Flush any pending trace messages, remove the 
        ' console trace listener from the collection,
        ' and close the console trace listener.
        Trace.Flush()
        Trace.Listeners.Remove(consoleTracer)
        consoleTracer.Close()

        ' Write a final trace message to all trace listeners.
        Trace.WriteLine(DateTime.Now.ToString() + " - End of Main")

        ' Close all other configured trace listeners.
        Trace.Close()

    End Sub

End Class

Uwagi

Użyj klasy do zapisywania ConsoleTraceListener komunikatów śledzenia i debugowania w konsoli programu . Obiekt można zainicjować ConsoleTraceListener , aby zapisywać komunikaty śledzenia w strumieniu Console.Out lub strumieniu Console.Error .

Ważne

Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z typu należy go usunąć bezpośrednio lub pośrednio. Aby usunąć typ bezpośrednio, wywołaj metodę Disposetry/catch w bloku. Aby usunąć go pośrednio, użyj konstrukcji językowej, takiej jak using (w języku C#) lub Using (w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Using an Object that Implements IDisposable" (Używanie obiektu implementujące protokół IDisposable) w temacie interfejsu IDisposable .

Gdy dane wyjściowe śledzenia i debugowania są włączone, ConsoleTraceListener komunikaty są zapisywane w określonym System.Console strumieniu, co jest podobne do sposobu zapisywania komunikatów przy użyciu Console.Write metod or Console.WriteLine . W aplikacji System.Console konsolowej dane wyjściowe i strumienie błędów zapisują komunikaty w istniejącym oknie konsoli lub możesz przekierować strumienie do zapisu w wystąpieniu System.IO.TextWriter .

Uwaga

Jeśli konsola nie istnieje, podobnie jak w aplikacji opartej na systemie Windows, komunikaty zapisane w konsoli nie są wyświetlane.

ConsoleTraceListener Dodaj obiekt do odpowiedniej Listeners kolekcji, jeśli chcesz, aby komunikaty zapisane za pośrednictwem Traceprogramu , TraceSourcelub Debug zostały zapisane w konsoli programu . Ponadto można zapisywać komunikaty bezpośrednio w konsoli przy użyciu Trace.Write metod lub Trace.WriteLine .

Uwaga

Klasy Debug i Trace współużytkują tę samą TraceListenerCollection kolekcję, uzyskiwaną za pośrednictwem odpowiednich Listeners właściwości. Jeśli dodasz ConsoleTraceListener obiekt do kolekcji przy użyciu jednej z tych klas, druga klasa automatycznie używa tego samego odbiornika.

Większość kompilatorów włącza dane wyjściowe śledzenia i debugowania za pomocą flag kompilacji warunkowej. Jeśli nie włączysz śledzenia ani debugowania, komunikaty zapisane za pośrednictwem System.Diagnostics.Debug klas i System.Diagnostics.Trace są skutecznie ignorowane. Składnia umożliwiająca włączenie danych wyjściowych śledzenia i debugowania jest specyficzna dla kompilatora; Jeśli używasz kompilatorów innych niż C# lub Visual Basic, zapoznaj się z dokumentacją kompilatora.

  • Aby włączyć debugowanie w języku C#, dodaj flagę /d:DEBUGdo wiersza polecenia kompilatora podczas kompilowania kodu lub możesz dodać #define DEBUG na początku pliku. W języku Visual Basic dodaj flagę /d:DEBUG=True do wiersza polecenia kompilatora.

  • Aby włączyć śledzenie w języku C#, dodaj flagę /d:TRACE do wiersza polecenia kompilatora podczas kompilowania kodu lub dodaj #define TRACE na początku pliku. W języku Visual Basic dodaj flagę /d:TRACE=True do wiersza polecenia kompilatora.

Obiekt można dodać ConsoleTraceListener do kolekcji Listeners w kodzie. W przypadku aplikacji .NET Framework można dodać ConsoleTraceListener obiekt do Listeners kolekcji za pomocą pliku konfiguracji aplikacji. ConsoleTraceListener Dodaj obiekt w kodzie, aby napisać komunikaty dla określonej sekcji kodu lub ścieżki wykonywania. ConsoleTraceListener Dodaj obiekt w pliku konfiguracji aplikacji, aby skierować wszystkie komunikaty śledzenia i debugowania do konsoli podczas wykonywania aplikacji.

Aby napisać komunikaty śledzenia i debugowania w konsoli dla określonej sekcji kodu, zainicjuj ConsoleTraceListener obiekt i dodaj go do Listeners kolekcji. Instrumentacja sekcji kodu zawierającego komunikaty przy użyciu Trace klas lub Debug . Na końcu sekcji kodu usuń ConsoleTraceListener obiekt z Listeners kolekcji i wywołaj metodę Close w obiekcie ConsoleTraceListener.

W przypadku aplikacji .NET Framework, aby skierować wszystkie komunikaty śledzenia i debugowania do konsoli podczas wykonywania aplikacji, dodaj ConsoleTraceListener obiekt do pliku konfiguracji aplikacji. Poniższy przykład dodaje ConsoleTraceListener obiekt o nazwie configConsoleListener do kolekcji Listeners .

<configuration>  
  <system.diagnostics>  
    <trace autoflush="false" indentsize="4">  
      <listeners>  
        <add name="configConsoleListener" type="System.Diagnostics.ConsoleTraceListener" />  
      </listeners>  
    </trace>  
  </system.diagnostics>  
 </configuration>  

Aby uzyskać szczegółowe informacje na temat dodawania odbiorników śledzenia w pliku konfiguracji aplikacji, zobacz <odbiorniki>.

Konstruktory

ConsoleTraceListener()

Inicjuje ConsoleTraceListener nowe wystąpienie klasy z danymi wyjściowymi śledzenia zapisanymi w standardowym strumieniu wyjściowym.

ConsoleTraceListener(Boolean)

Inicjuje nowe wystąpienie ConsoleTraceListener klasy z opcją zapisu danych wyjściowych śledzenia do standardowego strumienia wyjściowego lub standardowego strumienia błędów.

Właściwości

Attributes

Pobiera niestandardowe atrybuty odbiornika śledzenia zdefiniowane w pliku konfiguracji aplikacji.

(Odziedziczone po TraceListener)
Filter

Pobiera lub ustawia filtr śledzenia dla odbiornika śledzenia.

(Odziedziczone po TraceListener)
IndentLevel

Pobiera lub ustawia poziom wcięcia.

(Odziedziczone po TraceListener)
IndentSize

Pobiera lub ustawia liczbę spacji w wcięcie.

(Odziedziczone po TraceListener)
IsThreadSafe

Pobiera wartość wskazującą, czy odbiornik śledzenia jest bezpieczny wątkiem.

(Odziedziczone po TraceListener)
Name

Pobiera lub ustawia nazwę dla tego elementu TraceListener.

(Odziedziczone po TraceListener)
NeedIndent

Pobiera lub ustawia wartość wskazującą, czy należy wciąć dane wyjściowe.

(Odziedziczone po TraceListener)
TraceOutputOptions

Pobiera lub ustawia opcje danych wyjściowych śledzenia.

(Odziedziczone po TraceListener)
Writer

Pobiera lub ustawia moduł zapisywania tekstu, który odbiera dane wyjściowe śledzenia lub debugowania.

(Odziedziczone po TextWriterTraceListener)

Metody

Close()

Zamyka dane wyjściowe do strumienia określonego dla tego odbiornika śledzenia.

Close()

Zamyka element Writer tak, aby nie odbierał już danych wyjściowych śledzenia ani debugowania.

(Odziedziczone po TextWriterTraceListener)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszelkie zasoby używane przez element TraceListener.

(Odziedziczone po TraceListener)
Dispose(Boolean)

Usuwa ten TextWriterTraceListener obiekt.

(Odziedziczone po TextWriterTraceListener)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Fail(String)

Emituje komunikat o błędzie do odbiornika utworzonego podczas implementowania TraceListener klasy.

(Odziedziczone po TraceListener)
Fail(String, String)

Emituje komunikat o błędzie i szczegółowy komunikat o błędzie do odbiornika utworzonego podczas implementowania TraceListener klasy.

(Odziedziczone po TraceListener)
Flush()

Opróżnia bufor wyjściowy dla elementu Writer.

(Odziedziczone po TextWriterTraceListener)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetSupportedAttributes()

Pobiera atrybuty niestandardowe obsługiwane przez odbiornik śledzenia.

(Odziedziczone po TraceListener)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Zapisuje informacje śledzenia, obiekt danych i informacje o zdarzeniach do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Zapisuje informacje śledzenia, tablicę obiektów danych i informacje o zdarzeniach do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Zapisuje informacje dotyczące śledzenia i zdarzeń do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Zapisuje informacje dotyczące śledzenia, komunikatu i zdarzenia do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Zapisuje informacje śledzenia, sformatowaną tablicę obiektów i informacji o zdarzeniach do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Zapisuje informacje dotyczące śledzenia, komunikatu, powiązanej tożsamości działania i informacji o zdarzeniach do danych wyjściowych specyficznych dla odbiornika.

(Odziedziczone po TraceListener)
Write(Object)

Zapisuje wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy.

(Odziedziczone po TraceListener)
Write(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy.

(Odziedziczone po TraceListener)
Write(String)

Zapisuje komunikat do wystąpienia Writer.

(Odziedziczone po TextWriterTraceListener)
Write(String, String)

Zapisuje nazwę kategorii i komunikat do odbiornika tworzonego podczas implementowania TraceListener klasy.

(Odziedziczone po TraceListener)
WriteIndent()

Zapisuje wcięcie do odbiornika utworzonego podczas implementowania tej klasy i resetuje NeedIndent właściwość do false.

(Odziedziczone po TraceListener)
WriteLine(Object)

Zapisuje wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy, po której następuje terminator wiersza.

(Odziedziczone po TraceListener)
WriteLine(Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy, po której następuje terminator wiersza.

(Odziedziczone po TraceListener)
WriteLine(String)

Zapisuje komunikat w tym wystąpieniu Writer , po którym następuje terminator wiersza. Domyślny terminator wiersza to powrót karetki, po którym następuje kanał informacyjny wiersza (\r\n).

(Odziedziczone po TextWriterTraceListener)
WriteLine(String, String)

Zapisuje nazwę kategorii i komunikat do odbiornika utworzonego podczas implementowania TraceListener klasy, po którym następuje terminator wiersza.

(Odziedziczone po TraceListener)

Dotyczy

Zobacz też