Поделиться через


ConsoleTraceListener Класс

Определение

Направляет вывод отладки и трассировки в стандартный поток вывода или стандартный поток сообщений об ошибках.

public ref class ConsoleTraceListener : System::Diagnostics::TextWriterTraceListener
public class ConsoleTraceListener : System.Diagnostics.TextWriterTraceListener
type ConsoleTraceListener = class
    inherit TextWriterTraceListener
Public Class ConsoleTraceListener
Inherits TextWriterTraceListener
Наследование

Примеры

В следующем примере кода реализуется консольное приложение, состоящее из класса с двумя открытыми методами.

Метод Main проверяет аргументы командной строки и определяет, следует ли направлять выходные данные трассировки в стандартный поток ошибок или стандартный выходной поток. Main создает и инициализирует ConsoleTraceListener объект для указанного Console выходного потока и добавляет этот объект в коллекцию прослушивателя трассировки. Затем он вызывает WriteEnvironmentInfoToTrace метод , который записывает сведения о выполняемой среде и конфигурации прослушивателя трассировки в выходные данные трассировки.

При запуске примера приложения сведения о среде и конфигурации трассировки записываются в указанный поток вывода консоли через ConsoleTraceListener объект .

// 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

Комментарии

Используйте класс для ConsoleTraceListener записи сообщений трассировки и отладки в консоль. Объект можно инициализировать ConsoleTraceListener для записи сообщений трассировки в Console.Out поток или в Console.Error поток.

Важно!

Этот тип реализует интерфейс IDisposable. По окончании использования выдаленную ему память следует прямо или косвенно освободить. Чтобы удалить тип напрямую, вызовите его Dispose метод в блокеtry/catch . Чтобы сделать это косвенно, используйте языковые конструкции, такие как using (в C#) или Using (в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable.

Если включены выходные данные трассировки и отладки ConsoleTraceListener , сообщения записываются в указанный System.Console поток, что аналогично тому, как сообщения записываются с помощью Console.Write методов или Console.WriteLine . В консольном приложении System.Console потоки выходных данных и ошибок записывают сообщения в существующее окно консоли или можно перенаправить потоки для записи в System.IO.TextWriter экземпляр.

Примечание

Если консоль не существует, как в приложении windows, сообщения, записанные в консоль, не отображаются.

Добавьте объект в соответствующую ListenersConsoleTraceListener коллекцию, если вы хотите, чтобы сообщения, записанные с помощью Trace, TraceSourceилиDebug, записылись в консоль. Кроме того, можно записывать сообщения непосредственно в консоль с помощью Trace.Write методов или Trace.WriteLine .

Примечание

Классы Debug и Trace совместно используют одну TraceListenerCollection коллекцию, доступ к которым осуществляется через соответствующие Listeners свойства. При добавлении ConsoleTraceListener объекта в коллекцию с помощью одного из этих классов другой класс автоматически использует тот же прослушиватель.

Большинство компиляторов обеспечивают трассировку и отладку выходных данных с помощью флагов условной компиляции. Если трассировка или отладка не включены, сообщения, написанные System.Diagnostics.Debug с помощью классов и System.Diagnostics.Trace , игнорируются. Синтаксис для включения выходных данных трассировки и отладки зависит от компилятора; Если вы используете компиляторы, отличные от C# или Visual Basic, обратитесь к документации по компилятору.

  • Чтобы включить отладку в C#, добавьте флаг /d:DEBUGв командную строку компилятора при компиляции кода или добавьте #define DEBUG в начало файла. В Visual Basic добавьте флаг /d:DEBUG=True в командную строку компилятора.

  • Чтобы включить трассировку в C#, добавьте флаг /d:TRACE в командную строку компилятора при компиляции кода или добавьте #define TRACE в начало файла. В Visual Basic добавьте флаг /d:TRACE=True в командную строку компилятора.

Объект можно добавить ConsoleTraceListener в коллекцию Listeners в коде. Для платформа .NET Framework приложений можно добавить ConsoleTraceListener объект в коллекцию Listeners с помощью файла конфигурации приложения. ConsoleTraceListener Добавьте объект в код для записи сообщений для определенного раздела кода или пути выполнения. ConsoleTraceListener Добавьте объект в файл конфигурации приложения, чтобы направлять все сообщения трассировки и отладки в консоль во время выполнения приложения.

Чтобы написать сообщения трассировки и отладки в консоли для определенного раздела кода, инициализируйте ConsoleTraceListener объект и добавьте его в коллекцию Listeners . Инструментирование раздела кода, содержащего сообщения, с помощью Trace классов или Debug . В конце раздела кода удалите ConsoleTraceListener объект из Listeners коллекции и вызовите Close метод в ConsoleTraceListener.

Для платформа .NET Framework приложений, чтобы направлять все сообщения трассировки и отладки в консоль во время выполнения приложения, добавьте ConsoleTraceListener объект в файл конфигурации приложения. В следующем примере в коллекцию ConsoleTraceListener добавляется объект с Listeners именем configConsoleListener .

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

Дополнительные сведения о добавлении прослушивателей трассировки в файл конфигурации приложения см. в разделе <Прослушиватели>.

Конструкторы

ConsoleTraceListener()

Инициализирует новый экземпляр класса ConsoleTraceListener с записью выходных данных трассировки в стандартный поток вывода.

ConsoleTraceListener(Boolean)

Инициализирует новый экземпляр класса ConsoleTraceListener с возможностью записи выходных данных трассировки в стандартный поток вывода или стандартный поток ошибок.

Свойства

Attributes

Возвращает настраиваемые атрибуты прослушивателя трассировки, определенные в файле конфигурации приложения.

(Унаследовано от TraceListener)
Filter

Получает или задает фильтр трассировки для прослушивателя трассировки.

(Унаследовано от TraceListener)
IndentLevel

Возвращает или задает уровень отступа.

(Унаследовано от TraceListener)
IndentSize

Возвращает или задает число пробелов в отступе.

(Унаследовано от TraceListener)
IsThreadSafe

Возвращает значение, указывающее, является ли прослушиватель трассировки потокобезопасным.

(Унаследовано от TraceListener)
Name

Возвращает или задает имя для данного TraceListener.

(Унаследовано от TraceListener)
NeedIndent

Возвращает или задает значение, указывающее, нужен ли отступ в выходных данных.

(Унаследовано от TraceListener)
TraceOutputOptions

Возвращает или задает параметры выходных данных трассировки.

(Унаследовано от TraceListener)
Writer

Возвращает или задает средство записи текста, принимающее выходные данные трассировки или отладки.

(Унаследовано от TextWriterTraceListener)

Методы

Close()

Закрывает выходные данные для потока, заданного для этого прослушивателя трассировки.

Close()

Закрывает свойство Writer, которое, таким образом, больше не получает выходные данные отладки или трассировки.

(Унаследовано от TextWriterTraceListener)
CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Dispose()

Освобождает все ресурсы, занятые модулем TraceListener.

(Унаследовано от TraceListener)
Dispose(Boolean)

Удаляет этот объект TextWriterTraceListener.

(Унаследовано от TextWriterTraceListener)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Fail(String)

Посылает сообщение об ошибке в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
Fail(String, String)

Выдает простое и подробное сообщение об ошибке в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
Flush()

Очищает выходной буфер для свойства Writer.

(Унаследовано от TextWriterTraceListener)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetSupportedAttributes()

Возвращает настраиваемые атрибуты, поддерживаемые прослушивателем трассировки.

(Унаследовано от TraceListener)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Записывает сведения трассировки, объект данных и сведения о событиях в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Записывает сведения трассировки, массив объектов данных и сведения о событии в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Записывает сведения трассировки и сведения о событиях в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Записывает сведения трассировки, сообщение и сведения о событиях в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Записывает сведения трассировки, форматированный массив объектов данных и сведения о событиях в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Записывает сведения трассировки, сообщение, идентификатор сопутствующего действия и сведения о событиях в специальные выходные данные прослушивателя.

(Унаследовано от TraceListener)
Write(Object)

Записывает значение метода ToString() объекта в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
Write(Object, String)

Записывает имя категории и значение метода ToString() объекта в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
Write(String)

Записывает сообщение в свойство Writer данного экземпляра.

(Унаследовано от TextWriterTraceListener)
Write(String, String)

Записывает имя категории и сообщение в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
WriteIndent()

Записывает отступ в прослушиватель, создаваемый при реализации этого класса, и восстанавливает для свойства NeedIndent значение false.

(Унаследовано от TraceListener)
WriteLine(Object)

Записывает значение метода ToString() объекта, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
WriteLine(Object, String)

Записывает имя категории и значение метода ToString() объекта, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)
WriteLine(String)

Записывает сообщение в свойство Writer данного экземпляра, за которым следует ограничитель строки. Ограничитель строки по умолчанию — возврат каретки, за которым следует перевод строки (\r\n).

(Унаследовано от TextWriterTraceListener)
WriteLine(String, String)

Записывает имя категории и сообщение, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener.

(Унаследовано от TraceListener)

Применяется к

См. также раздел