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 значение |
WriteLine(Object) |
Записывает значение метода ToString() объекта, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener. (Унаследовано от TraceListener) |
WriteLine(Object, String) |
Записывает имя категории и значение метода ToString() объекта, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener. (Унаследовано от TraceListener) |
WriteLine(String) |
Записывает сообщение в свойство Writer данного экземпляра, за которым следует ограничитель строки. Ограничитель строки по умолчанию — возврат каретки, за которым следует перевод строки (\r\n). (Унаследовано от TextWriterTraceListener) |
WriteLine(String, String) |
Записывает имя категории и сообщение, заканчивающееся знаком завершения строки, в прослушиватель, создаваемый при реализации класса TraceListener. (Унаследовано от TraceListener) |