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