Partager via


XmlWriterTraceListener Classe

Définition

Dirige le suivi ou le débogage de sortie en tant que données encodées XML vers un TextWriter ou vers un , tel qu’un StreamFileStream.

public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
    inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
Héritage

Exemples

L’exemple de code suivant montre l’utilisation de la XmlWriterTraceListener classe pour écrire des données d’échappement et non échapées dans des journaux de fichiers.

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

Remarques

Note

Vous devez disposer d’une autorisation de code non managée pour créer une instance de la XmlWriterTraceListener classe.

La XmlWriterTraceListener classe convertit les informations de suivi et de débogage en flux de texte encodé xml. La description de la sortie XML est affichée dans les tableaux qui suivent. Vous pouvez utiliser l’outil Visionneuse de trace de service (SvcTraceViewer.exe) pour afficher la sortie XML.

Vous pouvez créer un XmlWriterTraceListener code dans votre code. Sinon, pour les applications .NET Framework, vous pouvez activer ou désactiver un via le fichier de configuration de XmlWriterTraceListener l’application, puis utiliser l’application configurée XmlWriterTraceListener dans votre application. Pour configurer un XmlWriterTraceListenerfichier de configuration, modifiez le fichier de configuration correspondant au nom de votre application. Dans ce fichier, vous pouvez ajouter ou supprimer un écouteur, définir les propriétés d’un écouteur ou supprimer des écouteurs. Le fichier de configuration doit être mis en forme comme l’exemple suivant.

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

La XmlWriterTraceListener classe hérite de la Filter propriété de la classe TraceListenerde base . La Filter propriété permet un niveau supplémentaire de filtrage de sortie de trace au niveau de l’écouteur. S’il existe un filtre, les Trace méthodes de l’écouteur de trace appellent la ShouldTrace méthode du filtre pour déterminer s’il faut émettre la trace.

Note

Si une tentative d’écriture dans un fichier en cours d’utilisation ou non disponible est effectuée, le nom du fichier est automatiquement précédé d’un GUID.

Note

Les méthodes d’écouteur sont destinées à être appelées par des méthodes du Debug, Traceet TraceSource des classes. Les méthodes d’écouteur ne sont pas destinées à être appelées directement à partir du code d’application. L’écouteur XmlWriterTraceListener est principalement destiné à être utilisé par la TraceSource classe. Les Write méthodes et WriteLine les méthodes peuvent être appelées par les TraceDebug classes et les valeurs par défaut sont fournies pour les éléments XML dont Trace les valeurs ne sont pas fournies.Debug

Le tableau suivant décrit les éléments et attributs de la sortie XML.

Élément Attributs Sortie Remarques
CallStack Aucun Dépend de la présence de l’indicateur Callstack dans la TraceOutputOptions propriété. Des caractères spéciaux tels que > ou < sont remplacés par des séquences d’échappement. Consultez la table de traduction de caractères d’échappement qui suit.
Computer Aucun Toujours présent. Valeur de la MachineName propriété.
Correlation ActivityID Toujours présent S’il n’est pas spécifié, la valeur par défaut est un GUID vide.
RelatedActivityID Dépend de la présence du paramètre dans l’appel relatedActivityId de méthode Trace. Paramètre relatedActivityId de la TraceTransfer méthode.
DataItem Aucun Dépend du data paramètre de la TraceData méthode. Cet élément peut contenir un tableau d’éléments ou un élément, de sorte que les valeurs sont écrites sous la forme d’un ensemble de DataItem nœuds sous l’élément TraceData .

La sortie de données utilise la ToString méthode des objets de données transmis.
EventID Aucun Toujours présent. Entrée de paramètre (id).
Execution ProcessName Toujours présent. À partir du TraceEventCache.
ProcessID Toujours présent. À partir du TraceEventCache.
ThreadID Toujours présent. À partir du TraceEventCache.
Level Aucun Toujours présent. Entrée de paramètre (valeur numérique de eventType). Les valeurs de paramètre supérieures à 255 sont générées comme 255.
LogicalOperationStack Aucun Dépend de la présence de l’indicateur LogicalOperationStack dans la TraceOutputOptions propriété. Il peut y avoir plusieurs opérations logiques, de sorte que les valeurs sont écrites en tant que LogicalOperation nœuds sous l’élément LogicalOperationStack .
Message Aucun Dépend de la présence d’un message dans l’appel de méthode Trace. Cet élément est un message mis en forme si des arguments de mise en forme sont fournis.
Source Name Toujours présent. Entrée de paramètre.
SubType Name Toujours présent. Entrée de paramètre.
TimeCreated SystemTime Toujours présent. S’il n’est pas présent dans le TraceEventCache, la valeur par défaut est l’heure actuelle.
TimeStamp Aucun Dépend de la présence de l’indicateur Timestamp dans la TraceOutputOptions propriété. À partir du TraceEventCache.
Type Aucun Toujours présent. Toujours la valeur 3.

Le tableau suivant montre les caractères qui sont échappés dans la sortie XML. L’échappement se produit dans tous les éléments et attributs à l’exception de l’élément DataItem , ce qui n’est pas échappé si l’objet passé au data paramètre de la TraceData méthode est un XPathNavigator objet. Si un XPathNavigator objet de données est utilisé, la MoveToRoot méthode est appelée et le nœud racine entier est suivi en tant que données non boucées.

Caractère d’échappement Valeur
& &
< <
> >
" "
|'
0xD
0xA

Constructeurs

Nom Description
XmlWriterTraceListener(Stream, String)

Initialise une nouvelle instance de la XmlWriterTraceListener classe avec le nom spécifié, en utilisant le flux spécifié en tant que destinataire de la sortie de débogage et de suivi.

XmlWriterTraceListener(Stream)

Initialise une nouvelle instance de la XmlWriterTraceListener classe à l’aide du flux spécifié en tant que destinataire de la sortie de débogage et de suivi.

XmlWriterTraceListener(String, String)

Initialise une nouvelle instance de la XmlWriterTraceListener classe avec le nom spécifié, en utilisant le fichier spécifié en tant que destinataire de la sortie de débogage et de suivi.

XmlWriterTraceListener(String)

Initialise une nouvelle instance de la XmlWriterTraceListener classe à l’aide du fichier spécifié en tant que destinataire de la sortie de débogage et de suivi.

XmlWriterTraceListener(TextWriter, String)

Initialise une nouvelle instance de la XmlWriterTraceListener classe avec le nom spécifié, en utilisant l’enregistreur spécifié comme destinataire de la sortie de débogage et de suivi.

XmlWriterTraceListener(TextWriter)

Initialise une nouvelle instance de la classe à l’aide XmlWriterTraceListener de l’enregistreur spécifié en tant que destinataire de la sortie de débogage et de suivi.

Propriétés

Nom Description
Attributes

Obtient les attributs d’écouteur de trace personnalisés définis dans le fichier de configuration de l’application.

(Hérité de TraceListener)
Filter

Obtient ou définit le filtre de trace pour l’écouteur de trace.

(Hérité de TraceListener)
IndentLevel

Obtient ou définit le niveau de retrait.

(Hérité de TraceListener)
IndentSize

Obtient ou définit le nombre d’espaces dans un retrait.

(Hérité de TraceListener)
IsThreadSafe

Obtient une valeur indiquant si l’écouteur de trace est thread-safe.

(Hérité de TraceListener)
Name

Obtient ou définit un nom pour ce TraceListener.

(Hérité de TraceListener)
NeedIndent

Obtient ou définit une valeur indiquant s’il faut mettre en retrait la sortie.

(Hérité de TraceListener)
TraceOutputOptions

Obtient ou définit les options de sortie de trace.

(Hérité de TraceListener)
Writer

Obtient ou définit l’enregistreur de texte qui reçoit la sortie de suivi ou de débogage.

(Hérité de TextWriterTraceListener)

Méthodes

Nom Description
Close()

Ferme l’écouteur Writer pour qu’il ne reçoive plus de suivi ou de sortie de débogage.

CreateObjRef(Type)

Crée un objet qui contient toutes les informations pertinentes requises pour générer un proxy utilisé pour communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par le TraceListener.

(Hérité de TraceListener)
Dispose(Boolean)

Supprime cet TextWriterTraceListener objet.

(Hérité de TextWriterTraceListener)
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
Fail(String, String)

Écrit des informations de trace, notamment un message d’erreur et un message d’erreur détaillé dans le fichier ou le flux.

Fail(String)

Émet un message d’erreur à l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Flush()

Vide la mémoire tampon de sortie pour le Writer.

(Hérité de TextWriterTraceListener)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l’objet de service de durée de vie actuel qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetSupportedAttributes()

Obtient les attributs personnalisés pris en charge par l’écouteur de trace.

(Hérité de TraceListener)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l’objet actuel MarshalByRefObject .

(Hérité de MarshalByRefObject)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Écrit des informations de trace, un objet de données et des informations d’événement dans le fichier ou le flux.

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

Écrit des informations de trace, des objets de données et des informations d’événement dans le fichier ou le flux.

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

Écrit des informations de trace, un message mis en forme et des informations d’événement dans le fichier ou le flux.

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

Écrit des informations de trace, un message et des informations d’événement dans le fichier ou le flux.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Écrit les informations de trace et d’événement dans la sortie spécifique de l’écouteur.

(Hérité de TraceListener)
TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Écrit des informations de trace, notamment l’identité d’une activité associée, un message et les informations d’événement dans le fichier ou le flux.

Write(Object, String)

Écrit un nom de catégorie et la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(Object)

Écrit la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(String, String)

Écrit un nom de catégorie et un message dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe.

(Hérité de TraceListener)
Write(String)

Écrit un message détaillé sans aucune information contextuelle supplémentaire dans le fichier ou le flux.

WriteIndent()

Écrit le retrait dans l’écouteur que vous créez lorsque vous implémentez cette classe et réinitialise la NeedIndent propriété sur false.

(Hérité de TraceListener)
WriteLine(Object, String)

Écrit un nom de catégorie et la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivie d’un terminateur de ligne.

(Hérité de TraceListener)
WriteLine(Object)

Écrit la valeur de la méthode de ToString() l’objet dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivie d’une marque de fin de ligne.

(Hérité de TraceListener)
WriteLine(String, String)

Écrit un nom de catégorie et un message dans l’écouteur que vous créez lorsque vous implémentez la TraceListener classe, suivi d’un terminateur de ligne.

(Hérité de TraceListener)
WriteLine(String)

Écrit un message détaillé sans aucune information contextuelle supplémentaire suivie de la marque de fin de ligne actuelle dans le fichier ou le flux.

S’applique à