Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

EventSchemaTraceListener, classe

Dirige la sortie du traçage ou du débogage d'événements de bout en bout à un fichier journal encodé XML, conforme au schéma.

System.Object
  System.MarshalByRefObject
    System.Diagnostics.TraceListener
      System.Diagnostics.TextWriterTraceListener
        System.Diagnostics.EventSchemaTraceListener

Espace de noms :  System.Diagnostics
Assembly :  System.Core (dans System.Core.dll)
[HostProtectionAttribute(SecurityAction.LinkDemand, MayLeakOnAbort = true)]
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public class EventSchemaTraceListener : TextWriterTraceListener

Le type EventSchemaTraceListener expose les membres suivants.

  Nom Description
Méthode publique EventSchemaTraceListener(String) Initialise une nouvelle instance de la classe EventSchemaTraceListener, à l'aide du fichier spécifié comme destinataire de la sortie de débogage et de traçage.
Méthode publique EventSchemaTraceListener(String, String) Initialise une nouvelle instance de la classe EventSchemaTraceListener avec le nom spécifié, à l'aide du fichier spécifié comme destinataire de la sortie de débogage et de traçage.
Méthode publique EventSchemaTraceListener(String, String, Int32) Initialise une nouvelle instance de la classe EventSchemaTraceListener avec le nom spécifié et la taille de la mémoire tampon spécifiée, à l'aide du fichier spécifié comme destinataire de la sortie de débogage et de traçage.
Méthode publique EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption) Initialise une nouvelle instance de la classe EventSchemaTraceListener avec le nom et la taille de mémoire tampon spécifiés, à l'aide du fichier spécifié, avec la stratégie de rétention de journal spécifiée, comme destinataire de sortie de débogage et de traçage.
Méthode publique EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption, Int64) Initialise une nouvelle instance de la classe EventSchemaTraceListener avec le nom et la taille de mémoire tampon spécifiés, à l'aide du fichier spécifié, avec la stratégie de rétention de journal et la taille maximale spécifiées, comme destinataire de sortie de débogage et de traçage.
Méthode publique EventSchemaTraceListener(String, String, Int32, TraceLogRetentionOption, Int64, Int32) Initialise une nouvelle instance de la classe EventSchemaTraceListener avec le nom et la taille de mémoire tampon spécifiés, à l'aide du fichier spécifié, avec la stratégie de rétention de journal, la taille maximale et le nombre de fichiers spécifiés, comme destinataire de sortie de débogage et de traçage.
Début
  Nom Description
Propriété publique Attributes Obtient les attributs d'écouteur de la trace personnalisé définis dans le fichier de configuration de l'application. (Hérité de TraceListener.)
Propriété publique BufferSize Obtient la taille de la mémoire tampon de sortie.
Propriété publique Filter Obtient et définit le filtre de trace pour l'écouteur de la trace. (Hérité de TraceListener.)
Propriété publique IndentLevel Obtient ou définit le niveau de retrait. (Hérité de TraceListener.)
Propriété publique IndentSize Obtient ou définit le nombre d'espaces dans un retrait. (Hérité de TraceListener.)
Propriété publique IsThreadSafe Obtient une valeur qui indique si l'écouteur de la trace est thread-safe. (Substitue TraceListener.IsThreadSafe.)
Propriété publique MaximumFileSize Obtient la taille maximale du fichier journal.
Propriété publique MaximumNumberOfFiles Obtient le nombre maximal de fichiers journaux.
Propriété publique Name Obtient ou définit un nom pour ce TraceListener. (Hérité de TraceListener.)
Propriété protégée NeedIndent Obtient ou définit une valeur indiquant si le résultat doit être mis en retrait. (Hérité de TraceListener.)
Propriété publique TraceLogRetentionOption Obtient l'option de maintien du journal des traces pour le fichier.
Propriété publique TraceOutputOptions Obtient ou définit les options de sortie de trace. (Hérité de TraceListener.)
Propriété publique Writer Obtient ou définit le writer de texte sous-jacent qui écrit au fichier journal.
Début
  Nom Description
Méthode publique Close Ferme le fichier journal pour cet écouteur pour qu'il ne reçoive plus la sortie de traçage ou de débogage. (Substitue TextWriterTraceListener.Close().)
Méthode publique CreateObjRef Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject.)
Méthode publique Dispose() Libère toutes les ressources utilisées par TraceListener. (Hérité de TraceListener.)
Méthode protégée Dispose(Boolean) Infrastructure. Supprime cet objet TextWriterTraceListener. (Hérité de TextWriterTraceListener.)
Méthode publique Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode publique Fail(String) Envoie un message d'erreur à l'écouteur que vous créez lors de l'implémentation de la classe TraceListener. (Hérité de TraceListener.)
Méthode publique Fail(String, String) Écrit des informations sur l'erreur, y compris un message d'erreur de base et un message d'erreur détaillé, au fichier journal. (Substitue TraceListener.Fail(String, String).)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique Flush Provoque l'écriture au journal des données mises en mémoire tampon pour cet écouteur. (Substitue TextWriterTraceListener.Flush().)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetLifetimeService Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.)
Méthode protégée GetSupportedAttributes Obtient les attributs de configuration XML personnalisés pris en charge par l'écouteur de la trace. (Substitue TraceListener.GetSupportedAttributes().)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique InitializeLifetimeService 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.)
Méthode protégée MemberwiseClone() Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée MemberwiseClone(Boolean) Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique TraceData(TraceEventCache, String, TraceEventType, Int32, Object) Écrit des informations de trace, un objet de données unique et des informations d'événement au fichier journal. (Substitue TraceListener.TraceData(TraceEventCache, String, TraceEventType, Int32, Object).)
Méthode publique TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) Écrit des informations de trace, des objets de données multiples et des informations d'événement au fichier journal. (Substitue TraceListener.TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]).)
Méthode publique TraceEvent(TraceEventCache, String, TraceEventType, Int32) Écrit des informations de traçage et d'événement dans la sortie spécifique de l'écouteur. (Hérité de TraceListener.)
Méthode publique TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) Écrit des informations de trace, un message et des informations d'événement au fichier journal. (Substitue TraceListener.TraceEvent(TraceEventCache, String, TraceEventType, Int32, String).)
Méthode publique TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) Écrit des informations de trace, un message mis en forme et des informations d'événement au fichier journal. (Substitue TraceListener.TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]).)
Méthode publique TraceTransfer Écrit des informations de trace, y compris une identité d'activité connexe, un message et des informations d'événement au fichier journal. (Substitue TraceListener.TraceTransfer(TraceEventCache, String, Int32, String, Guid).)
Méthode publique Write(Object) Écrit la valeur de la méthode ToString de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener. (Hérité de TraceListener.)
Méthode publique Write(String) Écrit un message au fichier journal sans fournir d'informations de contexte supplémentaires. (Substitue TextWriterTraceListener.Write(String).)
Méthode publique Write(Object, String) Écrit un nom de catégorie ou la valeur de la méthode ToString de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener. (Hérité de TraceListener.)
Méthode publique Write(String, String) Écrit un nom de catégorie et un message dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener. (Hérité de TraceListener.)
Méthode protégée WriteIndent Écrit la mise en retrait dans l'écouteur que vous créez lors de l'implémentation de cette classe et rétablit la valeur false à la propriété NeedIndent. (Hérité de TraceListener.)
Méthode publique WriteLine(Object) Écrit la valeur de la méthode ToString de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener, suivie d'un terminateur de ligne. (Hérité de TraceListener.)
Méthode publique WriteLine(String) Écrit un message, suivi de la marque de ligne active, au fichier journal, sans fournir d'informations de contexte supplémentaires. (Substitue TextWriterTraceListener.WriteLine(String).)
Méthode publique WriteLine(Object, String) Écrit un nom de catégorie ou la valeur de la méthode ToString de l'objet dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener, suivis d'un terminateur de ligne. (Hérité de TraceListener.)
Méthode publique WriteLine(String, String) Écrit un nom de catégorie ou un message dans l'écouteur que vous créez lors de l'implémentation de la classe TraceListener, suivis d'un terminateur de ligne. (Hérité de TraceListener.)
Début

La classe EventSchemaTraceListener fournit le traçage d'événements conformes au schéma de bout en bout. Vous pouvez utiliser le traçage de bout en bout pour un système dont les composants hétérogènes traversent les limites du thread, du AppDomain, du processus et de l'ordinateur. Un schéma d'événement standardisé (consultez Event Representation for Event Consumers) a été défini pour activer le traçage à travers ces limites. Ce schéma est partagé par plusieurs technologies de traçage, y compris les outils de diagnostic Windows Vista tels que l'Observateur d'événements. Le schéma active également l'addition d'éléments personnalisés conformes au schéma.

EventSchemaTraceListener est réglé pour enregistrer la performance avec assistance implicite pour traçage sans verrouillage.

La classe EventSchemaTraceListener convertit les informations de traçage et de débogage en un flux de texte encodé XML. La description de la sortie XML est affichée dans les tableaux plus loin dans cette section.

Vous pouvez activer ou désactiver un objet EventSchemaTraceListener via le fichier de configuration de l'application, puis utiliser l'objet EventSchemaTraceListener configuré dans votre application. Vous pouvez également créer un objet EventSchemaTraceListener dans votre code. Nous vous recommandons d'activer des écouteurs de traçage via le fichier de configuration de l'application. Pour plus d'informations sur les fichiers de configuration de l'application, consultez Configuration d'applications. Pour plus d'informations sur l'utilisation de fichiers de configuration pour le traçage et le débogage, consultez Schéma des paramètres de traçage et de débogage.

Pour configurer un objet EventSchemaTraceListener, modifiez le fichier de configuration correspondant au nom de votre application. Dans ce fichier, vous pouvez ajouter ou supprimer un écouteur ou définir les propriétés d'un écouteur. Le fichier de configuration doit être mis en forme comme suit :

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

La classe EventSchemaTraceListener hérite de la propriété Filter de la classe de base TraceListener. La propriété Filter autorise un niveau supplémentaire de filtration de la sortie de trace à l'écouteur. Si un filtre est présent, les méthodes Trace de l'écouteur de trace appellent la méthode ShouldTrace du filtre pour déterminer s'il faut émettre la trace.

Toute tentative d'écriture dans un fichier qui est utilisé ou n'est pas disponible résulte en l'ajout automatique d'un suffixe GUID au nom de fichier.

RemarqueRemarque

Les méthodes d'écouteur sont destinées à être appelées par les méthodes des classes Debug, Trace et TraceSource. N'appelez pas les méthodes d'écouteur directement à partir du code d'application. L'écouteur EventSchemaTraceListener est conçu à l'origine pour être utilisé par la classe TraceSource.

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

Élément

Attributs

Sortie

Remarques

CallStack

Aucun

Dépend de la présence de l'indicateur Callstack dans la propriété TraceOutputOptions.

Les caractères spéciaux tels que > ou < sont remplacés par les séquences d'échappement. Consultez la table de conversion de caractères d'échappement dans le tableau suivant.

Computer

Aucun

Toujours présent

Cet élément représente la valeur de la propriété MachineName.

Correlation

ActivityID

Toujours présent

Si ActivityID n'est pas spécifié, la valeur par défaut est un GUID vide.

RelatedActivityID

Dépend de la présence du paramètre relatedActivityId dans l'appel de méthode Trace.

L'attribut RelatedActivityID correspond au paramètre relatedActivityId de la méthode TraceTransfer.

Data

Aucun

Toujours présent

Cet élément représente l'entrée de paramètre (data). Un élément est fourni pour chaque objet de données. Dans le cas de journaux d'événements, l'élément Data contient les données XML avec séquence d'échappement. Dans le cas de journaux de données, l'élément Data contient des données sans séquence d'échappement. La sortie du journal de données utilise la méthode ToString des objets de données passés.

Event

Aucun

Toujours présent

Cet élément contient un événement de trace.

EventData

Aucun

Présent pour les journaux d'événements.

Cet élément représente l'entrée de paramètre (message, args). Il contient des éléments Data avec des données XML avec séquence d'échappement créées par l'appel de la méthode TraceEvent.

EventID

Aucun

Toujours présent

Cet élément représente l'entrée de paramètre (id).

Execution

ProcessID

Dépend de la présence de l'indicateur ProcessId dans la propriété TraceOutputOptions.

L'attribut ProcessID est spécifié dans le TraceEventCache. Sur les systèmes d'exploitation Microsoft Windows 98 et Windows Millenium Edition, si ProcessID est supérieur à 2 147 483 647, il s'agit d'une représentation positive d'un nombre négatif qui nécessite d'être convertie pour obtenir l'identificateur de processus correct.

ThreadID

Présent lorsque ProcessID est présent.

L'attribut ThreadID est spécifié dans le TraceEventCache.

Level

Aucun

Toujours présent

Cet élément représente l'entrée de paramètre (valeur numérique de eventType). Les valeurs de paramètre qui sont supérieures à 255 apparaissent au niveau 8, qui représente TraceEventType.Information. Les types d'événement de trace Critical, Error, Warning, Informationet Verbose apparaissent aux niveaux 1, 2, 4, 8 et 10, respectivement.

LogicalOperationStack

Aucun

Dépend de la présence de l'indicateur LogicalOperationStack dans la propriété TraceOutputOptions.

Une seule opération logique peut exister. Par conséquent, les valeurs sont écrites comme nœuds LogicalOperation sous l'élément LogicalOperationStack.

OpCode

Aucun

Présent lorsque Level est supérieur à 255.

Cet élément représente des types d'événement de trace qui ont des valeurs numériques supérieures à 255. Start, Stop, Suspend, Resume ou Transfer apparaissent aux niveaux 1, 2, 4, 8 et 10, respectivement.

Provider

GUID

Toujours présent

Toujours vide.

RenderingInfo

Culture

Toujours présent

Cet attribut représente une chaîne de ressource pour le type d'événement. Toujours "en-EN\."

System

Name

Toujours présent

TimeCreated

SystemTime

Dépend de la présence de l'indicateur DateTime dans la propriété TraceOutputOptions.

La valeur de la propriété TraceEventCache.DateTime est l'heure. Cette propriété est exprimée en temps universel coordonné

TimeStamp

Aucun

Dépend de la présence de l'indicateur Timestamp dans la propriété TraceOutputOptions.

Cet élément est spécifié dans le TraceEventCache.

UserData

Aucun

Présent pour les journaux de données.

Cet élément contient des éléments Data avec des données sans séquence d'échappement, fournies par l'utilisateur à partir d'une méthode TraceData.

Le tableau suivant répertorie les caractères placés dans une séquence d'échappement dans la sortie XML. L'échappement se produit dans tous les éléments et attributs à l'exception de l'élément UserData qui contient des données fournies par l'utilisateur, sans séquence d'échappement. L'élément UserData est un résultat d'appels à la méthode TraceData.

Caractère d'échappement

Valeur

&

&amp;

<

&lt;

>

&gt;

"

&quot;

\

&apos;

0xD

&#xD;

0xA

&#xA;

RemarqueRemarque

L'attribut HostProtectionAttribute appliqué à ce type ou membre a la valeur de propriété Resources suivante : MayLeakOnAbort | Synchronization. HostProtectionAttribute n'affecte pas les applications bureautiques (qui sont généralement démarrées en double-cliquant sur une icône, en tapant une commande ou en entrant une URL dans un navigateur). Pour plus d'informations, consultez la classe HostProtectionAttribute ou Attributs de programmation et de protection des hôtes SQL Server.

L'exemple de code suivant montre comment utiliser la classe EventSchemaTraceListener.


#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);
    }
}


.NET Framework

Pris en charge dans : 4, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ