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 Streamobiektu , 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 danych ucieczki 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
Uwaga
Aby utworzyć wystąpienie XmlWriterTraceListener klasy, musisz mieć uprawnienie 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 Service Trace Viewer Tool (SvcTraceViewer.exe ).
Możesz utworzyć element XmlWriterTraceListener w kodzie. Alternatywnie w przypadku aplikacji .NET Framework można włączyć lub wyłączyć XmlWriterTraceListener za pomocą pliku konfiguracji aplikacji, a następnie użyć skonfigurowanego XmlWriterTraceListener w aplikacji. Aby skonfigurować element , zmodyfikuj XmlWriterTraceListenerplik 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ą ShouldTrace metodę filtru, Trace
aby określić, czy emitować ślad.
Uwaga
Jeśli podjęto próbę zapisania w pliku, który jest używany lub niedostępny, nazwa pliku jest automatycznie poprzedzona identyfikatorem GUID.
Uwaga
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 mogą być wywoływane przez Trace klasy i DebugWriteLine, 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 | Dane wyjściowe | Uwagi |
---|---|---|---|
CallStack |
Brak | Zależy od obecności Callstack flagi TraceOutputOptions we właściwości. | Znaki specjalne, takie jak > lub < , są zastępowane sekwencjami ucieczki. Zobacz poniższą tabelę tłumaczenia znaków ucieczki. |
Computer |
Brak | Zawsze obecny. | 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. |
relatedActivityId Parametr TraceTransfer metody . |
|
DataItem |
Brak | 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 |
Brak | Zawsze obecny. | Dane wejściowe parametru (id ). |
Execution |
ProcessName |
Zawsze obecny. | Z elementu TraceEventCache. |
ProcessID |
Zawsze obecny. | Z elementu TraceEventCache. | |
ThreadID |
Zawsze obecny. | Z elementu TraceEventCache. | |
Level |
Brak | Zawsze obecny. | Dane wejściowe parametru (wartość liczbowa ).eventType Wartości parametrów większe niż 255 są wyjściowe jako 255. |
LogicalOperationStack |
Brak | Zależy od obecności LogicalOperationStack flagi TraceOutputOptions we 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 |
Brak | Zależy od obecności komunikatu w wywołaniu metody Trace. | Ten element jest sformatowanym komunikatem, jeśli podano argumenty formatowania. |
Source |
Name |
Zawsze obecny. | Dane wejściowe parametru. |
SubType |
Name |
Zawsze obecny. | Dane wejściowe parametru. |
TimeCreated |
SystemTime |
Zawsze obecny. | Jeśli nie istnieje w elemencie TraceEventCache, wartość domyślna to bieżący czas. |
TimeStamp |
Brak | Zależy od obecności Timestamp flagi TraceOutputOptions we właściwości. | Z elementu TraceEventCache. |
Type |
Brak | Zawsze obecny. | Zawsze wartość 3. |
W poniższej tabeli przedstawiono znaki, które są 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, MoveToRoot metoda jest wywoływana, a cały węzeł główny jest śledzony jako nieprzesłane dane.
Znak poprzedzony znakiem ucieczki | Wartość |
---|---|
& | & |
< | < |
> | > |
" | " |
|' | |
0xD | |
0xA |
Konstruktory
XmlWriterTraceListener(Stream) |
Inicjuje XmlWriterTraceListener nowe wystąpienie klasy przy użyciu określonego strumienia jako adresata danych wyjściowych debugowania i śledzenia. |
XmlWriterTraceListener(Stream, String) |
Inicjuje nowe wystąpienie XmlWriterTraceListener klasy o określonej nazwie, używając określonego strumienia jako adresata danych wyjściowych debugowania i śledzenia. |
XmlWriterTraceListener(String) |
Inicjuje XmlWriterTraceListener nowe wystąpienie klasy przy użyciu określonego pliku 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(TextWriter) |
Inicjuje XmlWriterTraceListener nowe wystąpienie klasy przy użyciu określonego składnika zapisywania 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. |
Właściwości
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 należy wciąć dane wyjściowe. (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
Close() |
Zamyka dla Writer tego odbiornika, 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 wszelkie zasoby używane przez element TraceListener. (Odziedziczone po TraceListener) |
Dispose(Boolean) |
Usuwa ten TextWriterTraceListener obiekt. (Odziedziczone po TextWriterTraceListener) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
Fail(String) |
Emituje komunikat o błędzie do odbiornika utworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
Fail(String, String) |
Zapisuje informacje śledzenia, w tym komunikat o błędzie i szczegółowy komunikat o błędzie do pliku lub strumienia. |
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() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (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 zdarzeniach 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) |
Zapisuje informacje dotyczące śledzenia i zdarzeń do danych wyjściowych specyficznych dla odbiornika. (Odziedziczone po TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Zapisuje informacje śledzenia, komunikat i informacje o zdarzeniu do pliku lub strumienia. |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Zapisuje informacje śledzenia, sformatowany komunikat i informacje o zdarzeniach do pliku lub strumienia. |
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) |
Zapisuje wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
Write(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
Write(String) |
Zapisuje komunikat dosłowny bez żadnych dodatkowych informacji kontekstowych do pliku lub strumienia. |
Write(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika tworzonego podczas implementowania TraceListener klasy. (Odziedziczone po TraceListener) |
WriteIndent() |
Zapisuje wcięcie do odbiornika utworzonego podczas implementowania tej klasy i resetuje NeedIndent właściwość do |
WriteLine(Object) |
Zapisuje wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy, po której następuje terminator wiersza. (Odziedziczone po TraceListener) |
WriteLine(Object, String) |
Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiornika tworzonego podczas implementowania TraceListener klasy, po której 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. |
WriteLine(String, String) |
Zapisuje nazwę kategorii i komunikat do odbiornika utworzonego podczas implementowania TraceListener klasy, po którym następuje terminator wiersza. (Odziedziczone po TraceListener) |