XmlWriterTraceListener Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Направляет выходные данные трассировки или отладки в виде xml-кодированных данных в объект TextWriter или в объект Stream, например FileStream.
public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
- Наследование
Примеры
В следующем примере кода показано использование XmlWriterTraceListener класса для записи как escape-, так и неисключаемых данных в журналы файлов.
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
class testClass
{
static void Main()
{
File.Delete("NotEscaped.xml");
TraceSource ts = new TraceSource("TestSource");
ts.Listeners.Add(new XmlWriterTraceListener("NotEscaped.xml"));
ts.Switch.Level = SourceLevels.All;
string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
XmlTextReader myXml = new XmlTextReader(new StringReader(testString));
XPathDocument xDoc = new XPathDocument(myXml);
XPathNavigator myNav = xDoc.CreateNavigator();
ts.TraceData(TraceEventType.Error, 38, myNav);
ts.Flush();
ts.Close();
File.Delete("Escaped.xml");
TraceSource ts2 = new TraceSource("TestSource2");
ts2.Listeners.Add(new XmlWriterTraceListener("Escaped.xml"));
ts2.Switch.Level = SourceLevels.All;
ts2.TraceData(TraceEventType.Error, 38, testString);
ts2.Flush();
ts2.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Diagnostics
Class testClass
Shared Sub Main()
File.Delete("NotEscaped.xml")
Dim ts As New TraceSource("TestSource")
ts.Listeners.Add(New XmlWriterTraceListener("NotEscaped.xml"))
ts.Switch.Level = SourceLevels.All
Dim testString As String = "<Test><InnerElement Val=""1"" /><InnerElement Val=""Data""/><AnotherElement>11</AnotherElement></Test>"
Dim myXml As New XmlTextReader(New StringReader(testString))
Dim xDoc As New XPathDocument(myXml)
Dim myNav As XPathNavigator = xDoc.CreateNavigator()
ts.TraceData(TraceEventType.Error, 38, myNav)
ts.Flush()
ts.Close()
File.Delete("Escaped.xml")
Dim ts2 As New TraceSource("TestSource2")
ts2.Listeners.Add(New XmlWriterTraceListener("Escaped.xml"))
ts2.Switch.Level = SourceLevels.All
ts2.TraceData(TraceEventType.Error, 38, testString)
ts2.Flush()
ts2.Close()
End Sub
End Class
Комментарии
Замечание
Для создания экземпляра XmlWriterTraceListener класса необходимо иметь неуправляемое разрешение на код.
Класс XmlWriterTraceListener преобразует сведения трассировки и отладки в текстовый поток в кодировке XML. Описание выходных данных XML отображается в таблицах, приведенных ниже. Средство просмотра трассировки службы (SvcTraceViewer.exe) можно использовать для отображения выходных данных XML.
Вы можете создать код XmlWriterTraceListener . Кроме того, для приложений .NET Framework можно включить или отключить XmlWriterTraceListener файл конфигурации приложения, а затем использовать настроенный XmlWriterTraceListener в приложении. Чтобы настроить XmlWriterTraceListenerфайл конфигурации, соответствующий имени приложения, измените файл конфигурации. В этом файле можно добавить или удалить прослушиватель, задать свойства прослушивателя или удалить его. Файл конфигурации должен быть отформатирован, как показано в следующем примере.
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="xmlListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="xmlOutput.xml"
traceOutputOptions="ProcessId, DateTime" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Класс XmlWriterTraceListener наследует Filter свойство от базового класса TraceListener. Свойство Filter позволяет дополнительному уровню фильтрации выходных данных трассировки на прослушивателе. Если существует фильтр, методы прослушивателя трассировки вызывают ShouldTrace метод фильтра, Trace чтобы определить, следует ли выдавать трассировку.
Замечание
Если предпринята попытка записать в файл, используемый или недоступный, имя файла автоматически префиксируется GUID.
Замечание
Методы прослушивателя должны вызываться методами Debugи TraceTraceSource классами. Методы прослушивателя не предназначены для вызова непосредственно из кода приложения. Прослушиватель XmlWriterTraceListener в основном предназначен для использования классом TraceSource . Методы Write могут вызываться классами и DebugWriteLine классамиTrace, а значения по умолчанию предоставляются для XML-элементов, для которых TraceDebug значения не предоставляются.
В следующей таблице описываются элементы и атрибуты выходных данных XML.
| Элемент | Атрибуты | Выходные данные | Примечания |
|---|---|---|---|
CallStack |
Нет | Зависит от наличия флага Callstack в свойстве TraceOutputOptions . | Специальные символы, например > или < заменяются escape-последовательности. См. таблицу перевода escape-символов, следующую. |
Computer |
Нет | Всегда присутствует. | Значение MachineName свойства. |
Correlation |
ActivityID |
Всегда присутствует | Если значение не указано, по умолчанию используется пустой GUID. |
RelatedActivityID |
Зависит от наличия relatedActivityId параметра в вызове метода Trace. |
Параметр relatedActivityIdTraceTransfer метода. |
|
DataItem |
Нет | Зависит от data параметра TraceData метода. |
Этот элемент может содержать массив элементов или один элемент, поэтому значения записываются как набор DataItem узлов под элементом TraceData .Выходные данные используют ToString метод переданных объектов данных. |
EventID |
Нет | Всегда присутствует. | Входные данные параметров (id). |
Execution |
ProcessName |
Всегда присутствует. | TraceEventCacheИз . |
ProcessID |
Всегда присутствует. | TraceEventCacheИз . | |
ThreadID |
Всегда присутствует. | TraceEventCacheИз . | |
Level |
Нет | Всегда присутствует. | Входные данные параметра (числовое значение eventType). Значения параметров, превышающие 255, выводятся как 255. |
LogicalOperationStack |
Нет | Зависит от наличия флага LogicalOperationStack в свойстве TraceOutputOptions . | Существует несколько логических операций, поэтому значения записываются как LogicalOperation узлы в элементе LogicalOperationStack . |
Message |
Нет | Зависит от наличия сообщения в вызове метода Trace. | Этот элемент представляет собой отформатированное сообщение, если указаны аргументы форматирования. |
Source |
Name |
Всегда присутствует. | Входные данные параметров. |
SubType |
Name |
Всегда присутствует. | Входные данные параметров. |
TimeCreated |
SystemTime |
Всегда присутствует. | Если в ней TraceEventCacheнет, по умолчанию используется текущее время. |
TimeStamp |
Нет | Зависит от наличия флага Timestamp в свойстве TraceOutputOptions . | TraceEventCacheИз . |
Type |
Нет | Всегда присутствует. | Всегда значение 3. |
В следующей таблице показаны символы, которые экранируются в выходных данных XML. Экранирование происходит во всех элементах и атрибутах за исключением DataItem элемента, который не экранируется, если объект, переданный data параметру TraceData метода, является XPathNavigator объектом.
XPathNavigator Если объект данных используется для объекта данных, метод вызывается, MoveToRoot а весь корневой узел трассируется как неискаченные данные.
| Экранированный символ | Ценность |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| |' | |
| 0xD | |
| 0xA |
Конструкторы
| Имя | Описание |
|---|---|
| XmlWriterTraceListener(Stream, String) |
Инициализирует новый экземпляр XmlWriterTraceListener класса с указанным именем, используя указанный поток в качестве получателя выходных данных отладки и трассировки. |
| XmlWriterTraceListener(Stream) |
Инициализирует новый экземпляр XmlWriterTraceListener класса, используя указанный поток в качестве получателя выходных данных отладки и трассировки. |
| XmlWriterTraceListener(String, String) |
Инициализирует новый экземпляр XmlWriterTraceListener класса с указанным именем, используя указанный файл в качестве получателя выходных данных отладки и трассировки. |
| XmlWriterTraceListener(String) |
Инициализирует новый экземпляр XmlWriterTraceListener класса, используя указанный файл в качестве получателя выходных данных отладки и трассировки. |
| XmlWriterTraceListener(TextWriter, String) |
Инициализирует новый экземпляр XmlWriterTraceListener класса с указанным именем, используя указанный модуль записи в качестве получателя выходных данных отладки и трассировки. |
| XmlWriterTraceListener(TextWriter) |
Инициализирует новый экземпляр XmlWriterTraceListener класса, используя указанный модуль записи в качестве получателя выходных данных отладки и трассировки. |
Свойства
| Имя | Описание |
|---|---|
| Attributes |
Возвращает атрибуты пользовательского прослушивателя трассировки, определенные в файле конфигурации приложения. (Унаследовано от TraceListener) |
| Filter |
Возвращает или задает фильтр трассировки для прослушивателя трассировки. (Унаследовано от TraceListener) |
| IndentLevel |
Возвращает или задает уровень отступа. (Унаследовано от TraceListener) |
| IndentSize |
Возвращает или задает количество пробелов в отступе. (Унаследовано от TraceListener) |
| IsThreadSafe |
Возвращает значение, указывающее, является ли прослушиватель трассировки потокобезопасной. (Унаследовано от TraceListener) |
| Name |
Возвращает или задает имя для этого TraceListener. (Унаследовано от TraceListener) |
| NeedIndent |
Возвращает или задает значение, указывающее, следует ли отступить выходные данные. (Унаследовано от TraceListener) |
| TraceOutputOptions |
Возвращает или задает параметры выходных данных трассировки. (Унаследовано от TraceListener) |
| Writer |
Возвращает или задает средство записи текста, получающее выходные данные трассировки или отладки. (Унаследовано от TextWriterTraceListener) |
Методы
| Имя | Описание |
|---|---|
| Close() |
Writer Закрывает прослушиватель таким образом, чтобы он больше не получал выходные данные трассировки или отладки. |
| CreateObjRef(Type) |
Создает объект, содержащий все соответствующие сведения, необходимые для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
| Dispose() |
Освобождает все ресурсы, используемые параметром TraceListener. (Унаследовано от TraceListener) |
| Dispose(Boolean) |
Удаляет этот TextWriterTraceListener объект. (Унаследовано от TextWriterTraceListener) |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Fail(String, String) |
Записывает сведения трассировки, включая сообщение об ошибке и подробное сообщение об ошибке в файл или поток. |
| 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) |
Записывает сведения трассировки, объект данных и сведения о событии в файл или поток. |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Записывает сведения трассировки, объекты данных и сведения о событии в файл или поток. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Записывает сведения трассировки, отформатированные сообщения и сведения о событии в файл или поток. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Записывает сведения трассировки, сообщение и сведения о событии в файл или поток. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Записывает данные трассировки и события в конкретный выход прослушивателя. (Унаследовано от TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Записывает сведения трассировки, включая удостоверение связанного действия, сообщения и сведения о событии в файл или поток. |
| Write(Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватель, который вы создаете при реализации TraceListener класса. (Унаследовано от TraceListener) |
| Write(Object) |
Записывает значение метода объекта ToString() в прослушиватель, который вы создаете при реализации TraceListener класса. (Унаследовано от TraceListener) |
| Write(String, String) |
Записывает имя категории и сообщение прослушивателя, создаваемого TraceListener при реализации класса. (Унаследовано от TraceListener) |
| Write(String) |
Записывает подробное сообщение без дополнительных сведений о контексте в файл или поток. |
| WriteIndent() |
Записывает отступ в прослушиватель, который вы создаете при реализации этого класса, и сбрасывает свойство |
| WriteLine(Object, String) |
Записывает имя категории и значение метода объекта ToString() в прослушиватель, который вы создаете при реализации TraceListener класса, за которым следует терминатор строки. (Унаследовано от TraceListener) |
| WriteLine(Object) |
Записывает значение метода объекта ToString() в прослушиватель, который создается при реализации TraceListener класса, за которым следует терминатор строки. (Унаследовано от TraceListener) |
| WriteLine(String, String) |
Записывает имя категории и сообщение прослушивателю, созданному при реализации TraceListener класса, за которым следует терминатор строки. (Унаследовано от TraceListener) |
| WriteLine(String) |
Записывает подробное сообщение без дополнительных сведений о контексте, за которым следует текущий терминатор строки в файл или поток. |