9
votes

Traceswitch et Systemswitch - Quelle est la différence?

Alors je manque probablement l'évidence ici, mais quelle est la différence entre la fonctionnalité du traceswitch et SystèmesWitch cours?

Ils donnent tous deux des descriptions de résumé identiques:

Fournit un commutateur à plusieurs niveaux pour contrôler le traçage et la sortie de débogage sans recompiler votre code.

Les remarques sont étrangement similaires à mes yeux. Est-ce que quelqu'un pourrait clarifier la différence entre leurs fonctionnalités et leurs cas d'utilisation?

(Pour l'exhaustivité, j'utilise des commutateurs avec mon tracesource objet, plutôt que l'ancienne classe trace de la classe , bien que je doute que cela fait beaucoup de différence.)


0 commentaires

3 Réponses :


10
votes

La différence est que traceswitch fonctionne avec les messages olons tandis que SystemsWitch fonctionne avec tracesource Messages, qui associer le messages avec leur source. Donc, avec un SystemsWitch , vous pouvez configurer vos auditeurs en fonction de l'emplacement des messages de trace.

Je conviens que la documentation ne signale pas directement la différence, mais creuse dans le tracesource documentation de classe et vous trouverez ceci:

Le tracesource est identifié par le nom d'une source, typiquement la Nom de l'application. La trace messages provenant d'un particulier composant peut être initié par un source de trace particulière, permettant à tous messages provenant de ce composant à être facilement identifié.

Il existe également un échantillon vous montrant comment configurer un SystemsWitch pour désactiver le traçage d'une source de trace.


1 commentaires

Merci, cela fait beaucoup plus de sens. Je dois avoir brillant ce bit dans toute la surcharge d'informations.



7
votes

Le (plus ancien) traceswitch est essentiellement un objet de tracelevel à utiliser en combinaison avec la classe de trace statique.

Le (plus récent) Tracesource combine un concept de tracelevel avec des méthodes de sortie réelles.

En conséquence, dans une grande application, vous pouvez utiliser plusieurs traces de traces pour configurer les paramètres de trace pour différentes parties (interface graphique, dal) du programme, mais que toutes les sorties seront envoyées au même (s) tracelistener (s).

Avec une traceource, vous pouvez avoir des canaux de sortie indépendants. Et une API légèrement meilleure.


0 commentaires

0
votes

Cette explication de la différence entre Tracelevel et Sourcelevel pourrait aider:

System.Diagnostics caché Sourcevels


0 commentaires