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
|
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.MarshalByRefObject
System.Diagnostics.TraceListener
System.Diagnostics.TextWriterTraceListener
System.Diagnostics.EventSchemaTraceListener
Assembly : System.Core (dans System.Core.dll)
Le type EventSchemaTraceListener expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
| Nom | Description | |
|---|---|---|
|
Attributes | Obtient les attributs d'écouteur de la trace personnalisé définis dans le fichier de configuration de l'application. (Hérité de TraceListener.) |
|
BufferSize | Obtient la taille de la mémoire tampon de sortie. |
|
Filter | Obtient et définit le filtre de trace pour l'écouteur de la 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 qui indique si l'écouteur de la trace est thread-safe. (Substitue TraceListener.IsThreadSafe.) |
|
MaximumFileSize | Obtient la taille maximale du fichier journal. |
|
MaximumNumberOfFiles | Obtient le nombre maximal de fichiers journaux. |
|
Name | Obtient ou définit un nom pour ce TraceListener. (Hérité de TraceListener.) |
|
NeedIndent | Obtient ou définit une valeur indiquant si le résultat doit être mis en retrait. (Hérité de TraceListener.) |
|
TraceLogRetentionOption | Obtient l'option de maintien du journal des traces pour le fichier. |
|
TraceOutputOptions | Obtient ou définit les options de sortie de trace. (Hérité de TraceListener.) |
|
Writer | Obtient ou définit le writer de texte sous-jacent qui écrit au fichier journal. |
| Nom | Description | |
|---|---|---|
|
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().) |
|
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.) |
|
Dispose() | Libère toutes les ressources utilisées par TraceListener. (Hérité de TraceListener.) |
|
Dispose(Boolean) | Infrastructure. Supprime cet objet TextWriterTraceListener. (Hérité de TextWriterTraceListener.) |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
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.) |
|
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).) |
|
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.) |
|
Flush | Provoque l'écriture au journal des données mises en mémoire tampon pour cet écouteur. (Substitue TextWriterTraceListener.Flush().) |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
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.) |
|
GetSupportedAttributes | Obtient les attributs de configuration XML personnalisés pris en charge par l'écouteur de la trace. (Substitue TraceListener.GetSupportedAttributes().) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
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.) |
|
MemberwiseClone() | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
MemberwiseClone(Boolean) | Crée une copie superficielle de l'objet MarshalByRefObject actuel. (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 unique et des informations d'événement au fichier journal. (Substitue TraceListener.TraceData(TraceEventCache, String, TraceEventType, Int32, Object).) |
|
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[]).) |
|
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.) |
|
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).) |
|
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[]).) |
|
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).) |
|
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.) |
|
Write(String) | Écrit un message au fichier journal sans fournir d'informations de contexte supplémentaires. (Substitue TextWriterTraceListener.Write(String).) |
|
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.) |
|
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.) |
|
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.) |
|
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.) |
|
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).) |
|
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.) |
|
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.) |
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.
Remarque |
|---|
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 |
|---|---|
& | & |
< | < |
> | > |
" | " |
\ | ' |
0xD | 
 |
0xA | 
 |
Remarque |
|---|
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); } }
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.
Remarque