Différence entre Trace.Write () et Trace.TraceInformation ()

Quelle est la différence entre Trace.Write

Écrit des informations sur la trace dans les écouteurs de trace

et Trace.TraceInformation ?

Écrit un message d’information aux écouteurs de trace

Malheureusement, l’API est confuse ici et les surcharges spécifiques changent le comportement. La documentation au niveau de la méthode ne décrit pas bien les méthodes et examiner la source (décompilée) permet de répondre à cette question.

Trace.Write/WriteLine(ssortingng) sont les méthodes abstraites que les implémentations remplacent pour “écrire” dans les stream de base et toutes les données transférées seront acceptées, quelle que soit la configuration de trace / source.

Trace.Write/WriteLine(object) (et les autres surcharges) doivent effectivement être considérés comme des “Trace.WriteVerbose” bruts lorsqu’ils appliquent le filtre Verbose ShouldTrace.

Donc

  • Pour écrire directement dans le stream / fournisseur sous-jacent, en contournant les filtres, utilisez Trace.Write/WriteLine(ssortingng) .

    Ce texte de trace sera toujours écrit.

  • Pour écrire un message d’information, utilisez Trace.TraceInformation . Ceci appelle Trace.WriteLine(ssortingng) via TraceEvent qui applique le filtre Information. Trace.TraceXYZ méthodes Trace.TraceXYZ émettent également des en-têtes / pieds de page.

    Cet événement de trace sera écrit lorsque les informations doivent être recherchées.

  • Pour écrire du texte détaillé, utilisez Trace.WriteLine(object) (ou d’autres surcharges).

    Ce texte ne sera écrit que lorsque Verbose doit être tracé.

Toutes les formes de Trace.Write/WriteLine contournent la mise en forme de trace supplémentaire et écrivent dans le stream d’implémentation de trace sous-jacent.

Mon instinct me dit qu’ils écrivent dans différents types de stream.

Trace.TraceInformation

TraceInformation appelle la méthode TraceEvent pour chaque écouteur de trace, avec le type d’événement de trace Information, en transmettant le message informatif en tant que chaîne de message.

http://msdn.microsoft.com/en-us/library/64tdffaz(v=vs.110).aspx

Trace.Write

Cette méthode appelle la méthode Write de l’écouteur de trace.

http://msdn.microsoft.com/en-us/library/sdx112wk(v=vs.110).aspx

En TraceInformation Reflector, TraceInformation (et l’équivalent TraceWarning , TraceError ) enregistre l’événement pour lequel une trace informationnelle (ou avertissement ou erreur) a été fournie (vérifiant normalement que ce niveau de trace a été demandé et et “pieds de page”).

Trace.Write écrit simplement le texte fourni aux auditeurs.

NB TraceListener.TraceEvent est redéfinissable afin que tout écouteur spécifique puisse ajuster la sortie.