Partager via


TraceSwitch Classe

Définition

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

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
Héritage
TraceSwitch

Exemples

L’exemple de code suivant crée un nouveau TraceSwitch et utilise le commutateur pour déterminer s’il faut imprimer des messages d’erreur. Le commutateur est créé au niveau de la classe. MyMethod écrit le premier message d’erreur si la Level propriété a la TraceLevel.Error valeur ou une valeur supérieure. Toutefois, MyMethod n’écrit pas le deuxième message d’erreur si est inférieur TraceLevel.Verboseà Level .

   // Class-level declaration.
   /* Create a TraceSwitch to use in the entire application.*/
private:
   static TraceSwitch^ mySwitch = gcnew TraceSwitch( "General", "Entire Application" );

public:
   static void MyMethod()
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      if ( mySwitch->TraceError )
         Console::WriteLine( "My error message." );
      
      // Write the message if the TraceSwitch level is set to Verbose.
      if ( mySwitch->TraceVerbose )
         Console::WriteLine( "My second error message." );
   }

   static void main()
   {
      // Run the method that prints error messages based on the switch level.
      MyMethod();
   }
//Class-level declaration.
/* Create a TraceSwitch to use in the entire application.*/
static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");

static public void MyMethod()
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    if (mySwitch.TraceError)
        Console.WriteLine("My error message.");

    // Write the message if the TraceSwitch level is set to Verbose.
    if (mySwitch.TraceVerbose)
        Console.WriteLine("My second error message.");
}

public static void Main(string[] args)
{
    // Run the method that prints error messages based on the switch level.
    MyMethod();
}
' Class-level declaration.
' Create a TraceSwitch to use in the entire application. 
Private Shared mySwitch As New TraceSwitch("General", "Entire Application")    

Public Shared Sub MyMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    If mySwitch.TraceError Then
        Console.WriteLine("My error message.")
    End If 
    ' Write the message if the TraceSwitch level is set to Verbose.
    If mySwitch.TraceVerbose Then
        Console.WriteLine("My second error message.")
    End If
End Sub

Public Shared Sub Main()
    ' Run the method that prints error messages based on the switch level.
    MyMethod()
End Sub

Remarques

Vous pouvez utiliser un commutateur de suivi pour filtrer les messages en fonction de leur importance. La TraceSwitch classe fournit les TraceErrorpropriétés , TraceWarning, TraceInfoet TraceVerbose pour tester le niveau du commutateur. La Level propriété obtient ou définit le commutateur .TraceLevel

Vous pouvez créer un TraceSwitch dans votre code et définir le niveau directement pour instrumenter une section spécifique de code.

Dans les applications .NET Framework uniquement, vous pouvez également définir le niveau d’un TraceSwitch via le fichier de configuration de l’application, puis utiliser le niveau configuré TraceSwitch dans votre application. Dans le fichier de configuration de l’application, vous pouvez ajouter ou supprimer un commutateur, définir la valeur d’un commutateur ou effacer tous les commutateurs précédemment définis par l’application. Le fichier de configuration doit être mis en forme comme dans l’exemple suivant :

<configuration>  
  <system.diagnostics>  
    <switches>  
      <add name="mySwitch" value="1" />  
    </switches>  
  </system.diagnostics>  
</configuration>  

Cette section de configuration définit un TraceSwitch avec la DisplayName valeur définie sur mySwitchet la Level valeur 1, qui correspond à la valeur TraceLevel.Errord’énumération .

Notes

Vous pouvez également utiliser du texte pour spécifier la valeur d’un commutateur. Par exemple, true pour un BooleanSwitch, ou le texte représentant une valeur d’énumération, comme Error pour un TraceSwitch. La ligne <add name="mySwitch" value="Error" /> équivaut à <add name="mySwitch" value="1" />.

Dans votre application, vous pouvez utiliser le niveau de commutateur configuré en créant un TraceSwitch avec le même nom, comme illustré dans l’exemple suivant :

private:
    static TraceSwitch^ appSwitch = gcnew TraceSwitch("mySwitch",
        "Switch in config file");

public:
    static void Main(array<String^>^ args)
    {
        //...
        Console::WriteLine("Trace switch {0} configured as {1}",
        appSwitch->DisplayName, appSwitch->Level.ToString());
        if (appSwitch->TraceError)
        {
            //...
        }
    }
private static TraceSwitch appSwitch = new TraceSwitch("mySwitch",
    "Switch in config file");

public static void Main(string[] args)
{
    //...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString());
    if (appSwitch.TraceError)
    {
        //...
    }
}
Private Shared appSwitch As new TraceSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main(args As String())
    '...
    Console.WriteLine("Trace switch {0} configured as {1}",
    appSwitch.DisplayName, appSwitch.Level.ToString())
    If appSwitch.TraceError = True  Then
        '...
    End If
End Sub

Dans les applications .NET Core et .NET 5+ , le Level du nouveau commutateur est TraceLevel.Offdéfini par défaut sur .

Dans les applications .NET Framework, la propriété switch Level utilise par défaut la valeur spécifiée dans le fichier de configuration. Si le TraceSwitch constructeur ne trouve pas les paramètres de commutateur initiaux dans le fichier de configuration, Level le nouveau commutateur est TraceLevel.Offdéfini par défaut sur .

Vous devez activer le suivi ou le débogage pour utiliser un commutateur. La syntaxe suivante est propre au compilateur. Si vous utilisez des compilateurs autres que C# ou Visual Basic, reportez-vous à la documentation de votre compilateur.

  • Pour activer le débogage en C#, ajoutez l’indicateur /d:DEBUG à la ligne de commande du compilateur lorsque vous compilez votre code, ou ajoutez #define DEBUG en haut de votre fichier. En Visual Basic, ajoutez l’indicateur /d:DEBUG=True à la ligne de commande du compilateur.

  • Pour activer le suivi en C#, ajoutez l’indicateur /d:TRACE à la ligne de commande du compilateur lorsque vous compilez votre code, ou ajoutez #define TRACE en haut de votre fichier. En Visual Basic, ajoutez l’indicateur /d:TRACE=True à la ligne de commande du compilateur.

Notes

Ces commutateurs de compilateur de débogage et de trace ne sont pas nécessaires lors de l’utilisation de la TraceSwitch classe en isolation. Elles ne sont requises qu’avec Trace les méthodes ou Debug compilées de manière conditionnelle.

Pour plus d’informations sur l’instrumentation de votre application, consultez Debug et Trace. Pour plus d’informations sur la configuration et l’utilisation des commutateurs de trace, consultez Commutateurs de trace.

Notes

Pour améliorer les performances, vous pouvez créer des TraceSwitch membres static dans votre classe.

Constructeurs

TraceSwitch(String, String)

Initialise une nouvelle instance de la classe TraceSwitch à l'aide du nom complet et de la description spécifiés.

TraceSwitch(String, String, String)

Initialise une nouvelle instance de la classe TraceSwitch, à l'aide du nom complet, de la description et de la valeur par défaut spécifiés pour le commutateur.

Propriétés

Attributes

Obtient les attributs de commutateur personnalisés définis dans le fichier de configuration de l'application.

(Hérité de Switch)
DefaultValue

Obtient la valeur par défaut affectée dans le constructeur.

(Hérité de Switch)
Description

Obtient une description du commutateur.

(Hérité de Switch)
DisplayName

Obtient un nom utilisé pour identifier le commutateur.

(Hérité de Switch)
Level

Obtient ou définit le niveau de trace qui détermine les messages que le commutateur autorise.

SwitchSetting

Obtient ou définit le paramètre en cours pour ce commutateur.

(Hérité de Switch)
TraceError

Obtient une valeur qui indique si le commutateur autorise des messages de gestion des erreurs.

TraceInfo

Obtient une valeur qui indique si le commutateur autorise des messages d'information.

TraceVerbose

Obtient une valeur qui indique si le commutateur autorise tous les messages.

TraceWarning

Obtient une valeur qui indique si le commutateur autorise les messages d'avertissement.

Value

Obtient ou définit la valeur du commutateur.

(Hérité de Switch)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetSupportedAttributes()

Obtient les attributs personnalisés pris en charge par le commutateur.

(Hérité de Switch)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnSwitchSettingChanged()

Met à jour et corrige le niveau de ce commutateur.

OnValueChanged()

Affecte l'entier équivalent de la propriété SwitchSetting à la propriété Value.

OnValueChanged()

Appelé lorsque la propriété Value a été modifiée.

(Hérité de Switch)
Refresh()

Actualise les données de configuration de suivi.

(Hérité de Switch)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi