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 в поток.

Important

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

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

Note

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

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

Note

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

Большинство компиляторов позволяют выполнять трассировку и отладку выходных данных с помощью флагов условной компиляции. Если вы не включаете трассировку или отладку, сообщения, написанные с помощью System.Diagnostics.DebugSystem.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 объект с именем configConsoleListener в коллекцию Listeners .

<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, String)

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

(Унаследовано от TraceListener)
Fail(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, String, Object[])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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