Taal

EventSchemaTraceListener Klas

Definitie

Hiermee worden tracerings- of foutopsporingsuitvoer van end-to-endgebeurtenissen omleiden naar een met XML gecodeerd, schema-compatibel logboekbestand.

public ref class EventSchemaTraceListener : System::Diagnostics::TextWriterTraceListener
public class EventSchemaTraceListener : System.Diagnostics.TextWriterTraceListener
type EventSchemaTraceListener = class
    inherit TextWriterTraceListener
Public Class EventSchemaTraceListener
Inherits TextWriterTraceListener
Overname

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de EventSchemaTraceListener klasse gebruikt.

#define NOCONFIGFILE
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;

class testClass
{
    [STAThreadAttribute]
    static void Main()
    {
        File.Delete("TraceOutput.xml");
        TraceSource ts = new TraceSource("TestSource");
#if NOCONFIGFILE
        //ts.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml", "eventListener", 65536, TraceLogRetentionOption.LimitedCircularFiles, 20480000, 2));
        ts.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml", "eventListener"));
        ts.Listeners["eventListener"].TraceOutputOptions = TraceOptions.DateTime | TraceOptions.ProcessId | TraceOptions.Timestamp;
#endif
        ts.Switch.Level = SourceLevels.All;
        string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
        UnescapedXmlDiagnosticData unXData = new UnescapedXmlDiagnosticData(testString);
        ts.TraceData(TraceEventType.Error, 38, unXData);
        ts.TraceEvent(TraceEventType.Error, 38, testString);
        Trace.Listeners.Add(new EventSchemaTraceListener("TraceOutput.xml"));
        Trace.Write("test", "test");
        Trace.Flush();
        ts.Flush();
        ts.Close();
        DisplayProperties(ts);
        Process.Start("notepad.exe", "TraceOutput.xml");
        Console.WriteLine("Press the enter key to exit");
        Console.ReadLine();
    }
    private static void DisplayProperties(TraceSource ts)
    {
        Console.WriteLine("IsThreadSafe? " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).IsThreadSafe);
        Console.WriteLine("BufferSize =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).BufferSize);
        Console.WriteLine("MaximumFileSize =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).MaximumFileSize);
        Console.WriteLine("MaximumNumberOfFiles =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).MaximumNumberOfFiles);
        Console.WriteLine("Name =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).Name);
        Console.WriteLine("TraceLogRetentionOption =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).TraceLogRetentionOption);
        Console.WriteLine("TraceOutputOptions =  " + ((EventSchemaTraceListener)ts.Listeners["eventListener"]).TraceOutputOptions);
    }
}
#Const NOCONFIGFILE = True
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Diagnostics

Class testClass

    <STAThreadAttribute()> _
    Shared Sub Main()
        File.Delete("TraceOutput.xml")
        Dim ts As New TraceSource("TestSource")
#If NOCONFIGFILE Then
        ts.Listeners.Add(New EventSchemaTraceListener("TraceOutput.xml", "eventListener", 65536, TraceLogRetentionOption.LimitedCircularFiles, 20480000, 2))
        ts.Listeners("eventListener").TraceOutputOptions = TraceOptions.DateTime Or TraceOptions.ProcessId Or TraceOptions.Timestamp
#End If
        ts.Switch.Level = SourceLevels.All
        Dim testString As String = "<Test><InnerElement Val=""1"" /><InnerElement Val=""Data""/><AnotherElement>11</AnotherElement></Test>"
        Dim unXData As New UnescapedXmlDiagnosticData(testString)
        ts.TraceData(TraceEventType.Error, 38, unXData)
        ts.TraceEvent(TraceEventType.Error, 38, testString)
        ts.Flush()
        ts.Close()
        DisplayProperties(ts)
        Process.Start("notepad.exe", "TraceOutput.xml")
        Console.WriteLine("Press the enter key to exit")
        Console.ReadLine()

    End Sub

    Private Shared Sub DisplayProperties(ByVal ts As TraceSource)
        Console.WriteLine("IsThreadSafe? " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).IsThreadSafe.ToString())
        Console.WriteLine("BufferSize =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).BufferSize.ToString())
        Console.WriteLine("MaximumFileSize =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).MaximumFileSize.ToString())
        Console.WriteLine("MaximumNumberOfFiles =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).MaximumNumberOfFiles.ToString())
        Console.WriteLine("Name =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).Name)
        Console.WriteLine("TraceLogRetentionOption =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).TraceLogRetentionOption.ToString())
        Console.WriteLine("TraceOutputOptions =  " + CType(ts.Listeners("eventListener"), EventSchemaTraceListener).TraceOutputOptions.ToString())
    End Sub
End Class

Opmerkingen

De EventSchemaTraceListener klasse biedt tracering van end-to-end schema-compatibele gebeurtenissen. U kunt end-to-end-tracering gebruiken voor een systeem met heterogene onderdelen die thread-, AppDomainproces- en computergrenzen overschrijden. Een gestandaardiseerd gebeurtenisschema maakt tracering mogelijk over deze grenzen. Het schema maakt het toevoegen van aangepaste, schema-compatibele elementen mogelijk. U kunt het hulpprogramma Service Trace Viewer (SvcTraceViewer.exe) gebruiken om de gebeurtenisgegevens weer te geven.

EventSchemaTraceListener is afgestemd op logboekprestaties met impliciete ondersteuning voor tracering zonder vergrendeling.

De EventSchemaTraceListener klasse converteert tracerings- en foutopsporingsgegevens naar een xml-gecodeerde tekststroom. De beschrijving van de XML-uitvoer wordt weergegeven in de tabellen verderop in deze sectie.

U kunt een EventSchemaTraceListener object maken in uw code. Voor .NET Framework-apps kunt u ook een EventSchemaTraceListener-object in- of uitschakelen via het toepassingsconfiguratiebestand en vervolgens het geconfigureerde EventSchemaTraceListener-object in uw toepassing gebruiken. Zie Trace and Debug Settings Schema voor informatie over het gebruik van configuratiebestanden voor tracering en foutopsporing in .NET Framework-apps.

Als u een EventSchemaTraceListener-object in een .NET Framework-app wilt configureren, wijzigt u het configuratiebestand dat overeenkomt met de naam van uw toepassing. In dit bestand kunt u de eigenschappen voor een listener toevoegen, verwijderen of instellen. Het configuratiebestand moet als volgt worden opgemaakt:

<configuration>
    <system.diagnostics>
        <sources>
            <source name="TestSource" >
                <listeners>
                    <!--Remove the default trace listener for better performance.-->
                    <remove name="Default"/>
                    <!--Note: Removing the default trace listener prevents the dialog box
                    from being displayed for Debug.Fail or Debug.Assert commands that are
                    executed in user mode.-->
                    <add name="eventListener"
                      type="System.Diagnostics.EventSchemaTraceListener,  system.core"
                      initializeData="TraceOutput.xml"
                      traceOutputOptions="ProcessId, DateTime, Timestamp"
                      bufferSize="65536"
                      maximumFileSize="20480000"
                      logRetentionOption="LimitedCircularFiles"
                      maximumNumberOfFiles="2"/>
                </listeners>
            </source>
        </sources>
    </system.diagnostics>

De EventSchemaTraceListener klasse neemt de Filter eigenschap over van de basisklasse TraceListener. Met Filter de eigenschap is een extra niveau van traceringsuitvoerfilters mogelijk bij de listener. Als er een filter aanwezig is, roepen de Trace methoden van de traceerlistener de ShouldTrace methode van het filter aan om te bepalen of de tracering moet worden verzonden.

Als er een poging wordt gedaan om naar een bestand te schrijven dat wordt gebruikt of niet beschikbaar is, wordt automatisch een GUID-achtervoegsel toegevoegd aan de bestandsnaam.

Note

Listener-methoden zijn bedoeld om te worden aangeroepen door methoden van de Debug, Traceen TraceSource klassen. Roep de listenermethoden niet rechtstreeks aan vanuit de toepassingscode. De EventSchemaTraceListener listener is voornamelijk bedoeld voor gebruik door de TraceSource klasse.

In de volgende tabel worden de elementen en kenmerken van de XML-uitvoer beschreven.

Element Attributes Uitvoer Notes
CallStack Geen Is afhankelijk van de aanwezigheid van de Callstack vlag in de TraceOutputOptions eigenschap. Speciale tekens, zoals > of < worden vervangen door escapereeksen. Zie de vertaaltabel met escape-tekens in de volgende tabel.
Computer Geen Altijd aanwezig. Dit element vertegenwoordigt de waarde van de MachineName eigenschap.
Correlation ActivityID Altijd aanwezig. Als ActivityID dit niet is opgegeven, is de standaardwaarde een lege GUID.
RelatedActivityID Is afhankelijk van de aanwezigheid van de relatedActivityId parameter in de Trace methode-aanroep. Het RelatedActivityID kenmerk komt overeen met de relatedActivityId parameter van de TraceTransfer methode.
Data Geen Altijd aanwezig. Dit element vertegenwoordigt parameterinvoer (data). Er wordt één element opgegeven voor elk gegevensobject. In het geval van gebeurtenislogboeken bevat het Data element escape-XML-gegevens. In het geval van gegevenslogboeken bevat het Data element niet-gescapede gegevens. De uitvoer van het gegevenslogboek maakt gebruik van de ToString methode van de doorgegeven gegevensobjecten.
Event Geen Altijd aanwezig. Dit element bevat een tracerings gebeurtenis.
EventData Geen Aanwezig voor gebeurtenislogboeken. Dit element vertegenwoordigt parameterinvoer (message, args). Het bevat Data elementen met escape-XML-gegevens die worden gemaakt door de methode aan te TraceEvent roepen.
EventID Geen Altijd aanwezig. Dit element vertegenwoordigt parameterinvoer (id).
Execution ProcessID Is afhankelijk van de aanwezigheid van de ProcessId vlag in de TraceOutputOptions eigenschap. Het ProcessID kenmerk wordt opgegeven in de TraceEventCache.
ThreadID Aanwezig wanneer ProcessID aanwezig is. Het ThreadID kenmerk wordt opgegeven in de TraceEventCache.
Level Geen Altijd aanwezig. Dit element vertegenwoordigt parameterinvoer (de numerieke waarde van eventType). Parameterwaarden die groter zijn dan 255, zijn uitvoer als niveau 8, die staat voor TraceEventType.Information. Traceer gebeurtenistypenCritical, Error, Warning, en InformationVerbosezijn uitvoer als respectievelijk niveaus 1, 2, 4, 8 en 10.
LogicalOperationStack Geen Is afhankelijk van de aanwezigheid van de LogicalOperationStack vlag in de TraceOutputOptions eigenschap. Er kan slechts één logische bewerking bestaan. Daarom worden de waarden geschreven als LogicalOperation knooppunten onder het LogicalOperationStack element.
OpCode Geen Aanwezig wanneer Level deze groter is dan 255. Dit element vertegenwoordigt gebeurtenistypen traceren die numerieke waarden hebben die groter zijn dan 255. Start, Stop, Suspend, , Resumeof Transfer uitvoer als niveaus 1, 2, 4, 8 en 10, respectievelijk.
Provider GUID Altijd aanwezig. Altijd leeg.
RenderingInfo Culture Altijd aanwezig. Dit kenmerk vertegenwoordigt een resourcetekenreeks voor het gebeurtenistype. Het is altijd "en-EN\".
System Name Altijd aanwezig.
TimeCreated SystemTime Is afhankelijk van de aanwezigheid van de DateTime vlag in de TraceOutputOptions eigenschap. De tijd is de waarde van de TraceEventCache.DateTime eigenschap. Deze eigenschap wordt uitgedrukt als Coordinated Universal Time
TimeStamp Geen Is afhankelijk van de aanwezigheid van de Timestamp vlag in de TraceOutputOptions eigenschap. Dit element wordt opgegeven in de TraceEventCache.
UserData Geen Aanwezig voor gegevenslogboeken. Dit element bevat Data elementen met niet-gescaped, door de gebruiker verstrekte gegevens uit een TraceData methode.

In de volgende tabel ziet u de tekens die zijn ontsnapt in de XML-uitvoer. Ontsnappen vindt plaats in alle elementen en kenmerken, met uitzondering van het UserData element, dat door de gebruiker verstrekte, niet-gescapede gegevens bevat. Het UserData element is het resultaat van aanroepen naar de TraceData methode.

Escape-teken Waarde
& &
< <
> >
" "
|'
0xD
0xA

Constructors

Name Description
EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption, Int64, Int32)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met de opgegeven naam en de opgegeven buffergrootte, met behulp van het opgegeven bestand met het opgegeven bewaarbeleid voor logboeken, de maximale grootte en het aantal bestanden als ontvanger van de uitvoer voor foutopsporing en tracering.

EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption, Int64)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met de opgegeven naam en de opgegeven buffergrootte, met behulp van het opgegeven bestand met het opgegeven bewaarbeleid voor logboeken en de maximale grootte als ontvanger van de uitvoer voor foutopsporing en tracering.

EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met de opgegeven naam en de opgegeven buffergrootte, met behulp van het opgegeven bestand met het opgegeven bewaarbeleid voor logboeken als ontvanger van de foutopsporings- en traceringsuitvoer.

EventSchemaTraceListener(String, String, Int32)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met de opgegeven naam en de opgegeven buffergrootte, met behulp van het opgegeven bestand als ontvanger van foutopsporing en traceringsuitvoer.

EventSchemaTraceListener(String, String)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met de opgegeven naam, waarbij het opgegeven bestand wordt gebruikt als ontvanger van foutopsporing en traceringsuitvoer.

EventSchemaTraceListener(String)

Initialiseert een nieuw exemplaar van de EventSchemaTraceListener klasse met behulp van het opgegeven bestand als ontvanger van foutopsporing en traceringsuitvoer.

Eigenschappen

Name Description
Attributes

Hiermee haalt u de aangepaste kenmerken van de traceringslistener op die zijn gedefinieerd in het configuratiebestand van de toepassing.

(Overgenomen van TraceListener)
BufferSize

Hiermee haalt u de grootte van de uitvoerbuffer op.

Filter

Hiermee haalt u het traceringsfilter voor de traceerlistener op of stelt u dit in.

(Overgenomen van TraceListener)
IndentLevel

Hiermee haalt u het inspringniveau op of stelt u het inspringniveau in.

(Overgenomen van TraceListener)
IndentSize

Hiermee kunt u het aantal spaties in een inspringing ophalen of instellen.

(Overgenomen van TraceListener)
IsThreadSafe

Hiermee wordt een waarde opgehaald die aangeeft of de traceerlist veilig is.

MaximumFileSize

Hiermee haalt u de maximale grootte van het logboekbestand op.

MaximumNumberOfFiles

Hiermee haalt u het maximum aantal logboekbestanden op.

Name

Hiermee haalt u een naam op of stelt u deze TraceListenerin.

(Overgenomen van TraceListener)
NeedIndent

Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de uitvoer moet worden ingesprongen.

(Overgenomen van TraceListener)
TraceLogRetentionOption

Hiermee haalt u de bewaaroptie voor traceringslogboeken voor het bestand op.

TraceOutputOptions

Hiermee haalt u de traceringsuitvoeropties op of stelt u deze in.

(Overgenomen van TraceListener)
Writer

Hiermee haalt u de onderliggende tekstschrijver op die naar het logboekbestand schrijft of stelt u deze in.

Methoden

Name Description
Close()

Hiermee sluit u het logboekbestand voor deze listener, zodat het geen tracerings- of foutopsporingsuitvoer meer ontvangt.

CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
Dispose()

Alle resources die worden gebruikt door de TraceListener.

(Overgenomen van TraceListener)
Dispose(Boolean)

Hiermee wordt dit TextWriterTraceListener object verwijderd.

(Overgenomen van TextWriterTraceListener)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
Fail(String, String)

Schrijft foutinformatie, inclusief een basisfoutbericht en een gedetailleerd foutbericht, naar het logboekbestand.

Fail(String)

Hiermee wordt een foutbericht verzonden naar de listener die u maakt wanneer u de TraceListener klasse implementeert.

(Overgenomen van TraceListener)
Flush()

Zorgt ervoor dat gebufferde gegevens naar het logboek worden geschreven voor deze listener.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetLifetimeService()
Verouderd.

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetSupportedAttributes()

Hiermee haalt u de aangepaste XML-configuratiekenmerken op die door de traceringslistener worden ondersteund.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
InitializeLifetimeService()
Verouderd.

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Hiermee schrijft u traceringsgegevens, één gegevensobject en gebeurtenisgegevens naar het logboekbestand.

TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Hiermee schrijft u traceringsgegevens, meerdere gegevensobjecten en gebeurtenisgegevens naar het logboekbestand.

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Hiermee schrijft u traceringsgegevens, een opgemaakt bericht en gebeurtenisgegevens naar het logboekbestand.

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Hiermee schrijft u traceringsgegevens, een bericht en gebeurtenisgegevens naar het logboekbestand.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Hiermee schrijft u tracerings- en gebeurtenisgegevens naar de specifieke listener-uitvoer.

(Overgenomen van TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Hiermee schrijft u traceringsgegevens, inclusief de identiteit van een gerelateerde activiteit, een bericht en gebeurtenisgegevens, naar het logboekbestand.

Write(Object, String)

Hiermee schrijft u een categorienaam en de waarde van de methode van het object ToString() naar de listener die u maakt wanneer u de TraceListener klasse implementeert.

(Overgenomen van TraceListener)
Write(Object)

Hiermee schrijft u de waarde van de methode van het object ToString() naar de listener die u maakt wanneer u de TraceListener klasse implementeert.

(Overgenomen van TraceListener)
Write(String, String)

Hiermee schrijft u een categorienaam en een bericht naar de listener die u maakt wanneer u de TraceListener klasse implementeert.

(Overgenomen van TraceListener)
Write(String)

Hiermee schrijft u een bericht naar het logboekbestand zonder aanvullende contextinformatie op te geven.

WriteIndent()

Hiermee schrijft u de inspringing naar de listener die u maakt wanneer u deze klasse implementeert en wordt de NeedIndent eigenschap falseopnieuw ingesteld op .

(Overgenomen van TraceListener)
WriteLine(Object, String)

Hiermee schrijft u een categorienaam en de waarde van de methode van het object ToString() naar de listener die u maakt wanneer u de TraceListener klasse implementeert, gevolgd door een regeleindteken.

(Overgenomen van TraceListener)
WriteLine(Object)

Hiermee schrijft u de waarde van de methode van het object ToString() naar de listener die u maakt wanneer u de TraceListener klasse implementeert, gevolgd door een regeleindteken.

(Overgenomen van TraceListener)
WriteLine(String, String)

Hiermee schrijft u een categorienaam en een bericht naar de listener die u maakt wanneer u de TraceListener klasse implementeert, gevolgd door een regeleindteken.

(Overgenomen van TraceListener)
WriteLine(String)

Hiermee schrijft u een bericht gevolgd door het huidige regeleindteken naar het logboekbestand zonder aanvullende contextinformatie op te geven.

Van toepassing op