XmlWriterTraceListener Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Kieruje śledzenie lub debugowanie danych wyjściowych jako dane zakodowane w formacie XML do obiektu TextWriter lub do Streamelementu , takiego jak FileStream.
public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
- Dziedziczenie
Przykłady
Poniższy przykład kodu przedstawia użycie XmlWriterTraceListener klasy do zapisywania zarówno danych ucieczki, jak i nieunikowanych w dziennikach plików.
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
Uwagi
Note
Aby utworzyć wystąpienie XmlWriterTraceListener klasy, musisz mieć uprawnienia do niezarządzanego kodu.
Klasa XmlWriterTraceListener konwertuje informacje śledzenia i debugowania na strumień tekstowy zakodowany w formacie XML. Opis danych wyjściowych XML jest wyświetlany w poniższych tabelach. Aby wyświetlić dane wyjściowe XML, możesz użyć narzędzia podglądu śledzenia usługi (SvcTraceViewer.exe).
Możesz utworzyć element XmlWriterTraceListener w kodzie. Alternatywnie w przypadku aplikacji .NET Framework można włączyć lub wyłączyć XmlWriterTraceListener za pośrednictwem pliku konfiguracji aplikacji, a następnie użyć skonfigurowanego XmlWriterTraceListener w aplikacji. Aby skonfigurować element XmlWriterTraceListener, zmodyfikuj plik konfiguracji odpowiadający nazwie aplikacji. W tym pliku można dodać lub usunąć odbiornik, ustawić właściwości odbiornika lub usunąć odbiorniki. Plik konfiguracji powinien być sformatowany tak jak w poniższym przykładzie.
<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>
Klasa XmlWriterTraceListener dziedziczy Filter właściwość z klasy TraceListenerbazowej . Właściwość Filter umożliwia dodatkowy poziom filtrowania danych wyjściowych śledzenia na odbiorniku. Jeśli istnieje filtr, metody odbiornika śledzenia wywołają Trace metodę filtru, aby określić, ShouldTrace czy emitować ślad.
Note
Jeśli zostanie podjęta próba zapisu w pliku, który jest używany lub niedostępny, nazwa pliku jest automatycznie poprzedzona identyfikatorem GUID.
Note
Metody odbiornika mają być wywoływane przez metody Debugklas , Tracei TraceSource . Metody odbiornika nie mają być wywoływane bezpośrednio z kodu aplikacji. Odbiornik XmlWriterTraceListener jest przeznaczony głównie do użycia przez klasę TraceSource . Metody Write i WriteLine mogą być wywoływane przez Trace klasy i Debug , a wartości domyślne są udostępniane dla elementów XML, które Trace i Debug nie dostarczają wartości.
W poniższej tabeli opisano elementy i atrybuty danych wyjściowych XML.
| Element | Atrybuty | Output | Notes |
|---|---|---|---|
CallStack |
Żadne | Zależy od obecności Callstack flagi we TraceOutputOptions właściwości . | Znaki specjalne, takie jak > lub < , są zastępowane sekwencjami ucieczki. Zapoznaj się z następującą tabelą tłumaczenia znaków ucieczki. |
Computer |
Żadne | Zawsze dostępny. | Wartość MachineName właściwości. |
Correlation |
ActivityID |
Zawsze obecne | Jeśli nie zostanie określony, wartość domyślna to pusty identyfikator GUID. |
RelatedActivityID |
Zależy od obecności parametru relatedActivityId w wywołaniu metody Trace. |
Parametr relatedActivityIdTraceTransfer metody . |
|
DataItem |
Żadne |
data Zależy od parametru TraceData metody . |
Ten element może zawierać tablicę elementów lub jednego elementu, więc wartości są zapisywane jako zestaw węzłów DataItem w elemecie TraceData .Dane wyjściowe używają ToString metody przekazanych obiektów danych. |
EventID |
Żadne | Zawsze dostępny. | Dane wejściowe parametru (id). |
Execution |
ProcessName |
Zawsze dostępny. | Z pliku TraceEventCache. |
ProcessID |
Zawsze dostępny. | Z pliku TraceEventCache. | |
ThreadID |
Zawsze dostępny. | Z pliku TraceEventCache. | |
Level |
Żadne | Zawsze dostępny. | Dane wejściowe parametru eventType(wartość liczbowa ). Wartości parametrów większe niż 255 są danymi wyjściowymi jako 255. |
LogicalOperationStack |
Żadne | Zależy od obecności LogicalOperationStack flagi we TraceOutputOptions właściwości . | Może istnieć więcej niż jedna operacja logiczna, więc wartości są zapisywane jako LogicalOperation węzły w elemecie LogicalOperationStack . |
Message |
Żadne | Zależy od obecności komunikatu w wywołaniu metody Trace. | Ten element jest sformatowanym komunikatem, jeśli podano argumenty formatowania. |
Source |
Name |
Zawsze dostępny. | Dane wejściowe parametru. |
SubType |
Name |
Zawsze dostępny. | Dane wejściowe parametru. |
TimeCreated |
SystemTime |
Zawsze dostępny. | Jeśli nie istnieje w elemencie TraceEventCache, wartość domyślna to bieżąca godzina. |
TimeStamp |
Żadne | Zależy od obecności Timestamp flagi we TraceOutputOptions właściwości . | Z pliku TraceEventCache. |
Type |
Żadne | Zawsze dostępny. | Zawsze wartość 3. |
W poniższej tabeli przedstawiono znaki ucieczki w danych wyjściowych XML. Ucieczka występuje we wszystkich elementach i atrybutach z wyjątkiem DataItem elementu, który nie jest ucieczki, jeśli obiekt przekazany do data parametru TraceData metody jest obiektem XPathNavigator . Jeśli element XPathNavigator jest używany dla obiektu danych, metoda jest wywoływana, MoveToRoot a cały węzeł główny jest śledzony jako nieprzesłane dane.
| Znak ucieczki | Wartość |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| |' | |
| 0xD | |
| 0xA |
Konstruktory
| Nazwa | Opis |
|---|---|
| XmlWriterTraceListener(Stream, String) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy o określonej nazwie przy użyciu określonego strumienia jako adresata danych wyjściowych debugowania i śledzenia. |
| XmlWriterTraceListener(Stream) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy przy użyciu określonego strumienia jako adresata danych wyjściowych debugowania i śledzenia. |
| XmlWriterTraceListener(String, String) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy o określonej nazwie, używając określonego pliku jako adresata danych wyjściowych debugowania i śledzenia. |
| XmlWriterTraceListener(String) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy przy użyciu określonego pliku jako adresata danych wyjściowych debugowania i śledzenia. |
| XmlWriterTraceListener(TextWriter, String) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy o określonej nazwie, używając określonego składnika zapisywania jako adresata danych wyjściowych debugowania i śledzenia. |
| XmlWriterTraceListener(TextWriter) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy przy użyciu określonego składnika zapisywania jako adresata danych wyjściowych debugowania i śledzenia. |
Właściwości
| Nazwa | Opis |
|---|---|
| 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 ma być wcięcie danych wyjściowych. (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
| Nazwa | Opis |
|---|---|
| Close() |
Zamyka element dla tego odbiornika Writer , aby nie odbierał już danych wyjściowych śledzenia ani debugowania. |
| 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 wszystkie zasoby używane przez program TraceListener. (Odziedziczone po TraceListener) |
| Dispose(Boolean) |
Usuwa ten TextWriterTraceListener obiekt. (Odziedziczone po TextWriterTraceListener) |
| Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
| Fail(String, String) |
Zapisuje informacje śledzenia, w tym komunikat o błędzie i szczegółowy komunikat o błędzie do pliku lub strumienia. |
| Fail(String) |
Emituje 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() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
| InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (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 zdarzeniu do pliku lub strumienia. |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Zapisuje informacje śledzenia, obiekty danych i informacje o zdarzeniach do pliku lub strumienia. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Zapisuje informacje śledzenia, sformatowany komunikat i informacje o zdarzeniu do pliku lub strumienia. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Zapisuje informacje śledzenia, komunikat i informacje o zdarzeniu do pliku lub strumienia. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Zapisuje informacje o śledzeniu i zdarzeniu do określonych danych wyjściowych odbiornika. (Odziedziczone po TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Zapisuje informacje śledzenia, w tym tożsamość powiązanego działania, komunikatu i informacji o zdarzeniu do pliku lub strumienia. |
| Write(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
| Write(Object) |
Zapisuje wartość metody obiektu ToString() w odbiorniku tworzonym podczas implementowania TraceListener klasy . (Odziedziczone po TraceListener) |
| Write(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika utworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
| Write(String) |
Zapisuje komunikat dosłowny bez dodatkowych informacji kontekstowych do pliku lub strumienia. |
| WriteIndent() |
Zapisuje wcięcie do odbiornika utworzonego podczas implementowania tej klasy i resetuje NeedIndent właściwość do |
| WriteLine(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika utworzonego podczas implementowania TraceListener klasy, a następnie terminator wiersza. (Odziedziczone po TraceListener) |
| WriteLine(Object) |
Zapisuje wartość metody obiektu ToString() do odbiornika utworzonego podczas implementowania TraceListener klasy, a następnie terminator wiersza. (Odziedziczone po TraceListener) |
| WriteLine(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika utworzonego TraceListener podczas implementowania klasy, po którym następuje terminator wiersza. (Odziedziczone po TraceListener) |
| WriteLine(String) |
Zapisuje komunikat dosłowny bez dodatkowych informacji kontekstowych, po których następuje bieżący terminator wiersza do pliku lub strumienia. |