Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Cet article est spécifique à .NET Framework. Elle ne s’applique pas aux implémentations plus récentes de .NET, notamment .NET 6 et versions ultérieures.
Les commutateurs de suivi vous permettent d’activer, de désactiver et de filtrer la sortie de suivi. Il s’agit d’objets qui existent dans votre code et peuvent être configurés en externe via le fichier .config. Il existe trois types de commutateurs de trace fournis dans .NET Framework : la BooleanSwitch classe, la TraceSwitch classe et la SourceSwitch classe. La BooleanSwitch classe agit comme un commutateur bascule, en activant ou en désactivant une variété d’instructions de trace. Les classes TraceSwitch et SourceSwitch vous permettent d’activer un commutateur de trace pour un niveau de suivi particulier, afin que les messages spécifiés pour le niveau Trace ou TraceSource et tous les niveaux inférieurs apparaissent. Si vous désactivez le commutateur, les messages de trace ne s’affichent pas. Toutes ces classes dérivent de la classe abstraite (MustInherit) Switch, tout comme les commutateurs développés par l'utilisateur devraient le faire.
Les commutateurs de trace peuvent être utiles pour filtrer les informations. Par exemple, vous pouvez voir chaque message de suivi dans un module d’accès aux données, mais uniquement les messages d’erreur dans le reste de l’application. Dans ce cas, vous utiliseriez un commutateur de trace pour le module d’accès aux données et un commutateur pour le reste de l’application. En utilisant le fichier .config pour configurer les commutateurs vers les paramètres appropriés, vous pouvez contrôler les types de messages de trace que vous avez reçus. Pour plus d’informations, consultez Guide pratique pour créer, initialiser et configurer des commutateurs de trace.
En règle générale, une application déployée est exécutée avec ses commutateurs désactivés, afin que les utilisateurs n’ont pas besoin d’observer beaucoup de messages de trace non pertinents apparaissant sur un écran ou de remplir un fichier journal lors de l’exécution de l’application. Si un problème se produit pendant l’exécution de l’application, vous pouvez arrêter l’application, activer les commutateurs et redémarrer l’application. Ensuite, les messages de suivi sont affichés.
Pour utiliser un commutateur, vous devez d’abord créer un objet switch à partir d’une classe BooleanSwitch , d’une classe TraceSwitch ou d’une classe switch définie par le développeur. Pour plus d’informations sur la création de commutateurs définis par les développeurs, consultez la Switch classe dans la référence .NET Framework. Ensuite, vous définissez une valeur de configuration qui spécifie quand l’objet switch doit être utilisé. Vous testez ensuite le paramètre de l’objet switch dans différentes méthodes de suivi Trace (ou Debug).
Niveaux de trace
Lorsque vous utilisez TraceSwitch, il existe des considérations supplémentaires. Un objet TraceSwitch a quatre propriétés qui retournent des valeurs booléennes indiquant si le commutateur est défini sur au moins un niveau particulier :
Les niveaux vous permettent de limiter la quantité d’informations de suivi que vous recevez uniquement à ces informations nécessaires pour résoudre un problème. Vous spécifiez le niveau de détail souhaité dans votre sortie de suivi en définissant et en configurant les commutateurs de trace au niveau de trace approprié. Vous pouvez recevoir des messages d’erreur, des messages d’avertissement, des messages d’information, des messages de suivi détaillés ou aucun message du tout.
C’est entièrement à vous de décider quel type de message associer à chaque niveau. En règle générale, le contenu des messages de suivi dépend de ce que vous associez à chaque niveau, mais vous déterminez les différences entre les niveaux. Vous pouvez fournir des descriptions détaillées d’un problème au niveau 3 (Informations), par exemple, mais fournir uniquement un numéro de référence d’erreur au niveau 1 (Erreur). C’est entièrement à vous de décider quel schéma fonctionne le mieux dans votre application.
Ces propriétés correspondent aux valeurs 1 à 4 de l’énumération TraceLevel . Le tableau suivant répertorie les niveaux de l’énumération TraceLevel et leurs valeurs.
| Valeur énumérée | Valeur de type entier | Type de message affiché (ou écrit dans une cible de sortie spécifiée) |
|---|---|---|
| Éteint | 0 | Aucun |
| Erreur | 1 | Seuls les messages d’erreur |
| Avertissement | 2 | Messages d’avertissement et messages d’erreur |
| Informations | 3 | Messages d’information, messages d’avertissement et messages d’erreur |
| Verbeux | 4 | Messages détaillés, messages d'information, messages d'avertissement et messages d'erreur |
Les propriétés TraceSwitch indiquent le niveau de trace maximal pour le commutateur. Autrement dit, les informations de suivi sont écrites pour le niveau spécifié, ainsi que pour tous les niveaux inférieurs. Par exemple, si TraceInfo est vrai, TraceError et TraceWarning sont également vrais , mais TraceVerbose peut être faux.
Ces propriétés sont en lecture seule. L’objet TraceSwitch les définit automatiquement lorsque la propriété TraceLevel est définie. Par exemple:
Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
Commutateurs définis par le développeur
En plus de fournir BooleanSwitch et TraceSwitch, vous pouvez définir vos propres commutateurs en héritent de la classe Switch et en substituant les méthodes de classe de base avec des méthodes personnalisées. Pour plus d’informations sur la création de commutateurs définis par les développeurs, consultez la Switch classe dans la référence .NET Framework.