Udostępnij za pośrednictwem


XmlWriterTraceListener Klasa

Definicja

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 false.

(Odziedziczone po TraceListener)
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)

Dotyczy