Partager via


TraceSwitch Classe

Définition

Fournit un commutateur à plusieurs niveaux pour contrôler le suivi et la sortie 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 commutateur 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é est définie sur TraceLevel.Error ou supérieure. Toutefois, MyMethod n’écrit pas le deuxième message d’erreur si la valeur Level est inférieure TraceLevel.Verboseà .

//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 trace pour filtrer les messages en fonction de leur importance. La TraceSwitch classe fournit les propriétés , TraceInfoTraceWarninget TraceVerbose fournit les TraceErrorpropriétés pour tester le niveau du commutateur. La Level propriété obtient ou définit le commutateur TraceLevel.

Vous pouvez créer un TraceSwitch code dans votre code et définir le niveau directement pour instrumenter une section spécifique du 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 une TraceSwitch valeur définie mySwitchDisplayName sur , et la Level valeur 1, qui correspond à la valeur TraceLevel.Errord’énumération .

Note

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" /> est équivalente à <add name="mySwitch" value="1" />.

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

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 nouveau commutateur est défini par défaut TraceLevel.Offsur .

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

Vous devez activer le suivi ou le débogage pour utiliser un commutateur. La syntaxe suivante est spécifique 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-y #define DEBUG en haut de votre fichier. Dans 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-y #define TRACE en haut de votre fichier. Dans Visual Basic, ajoutez l’indicateur /d:TRACE=True à la ligne de commande du compilateur.

Note

Ces commutateurs de compilateur de débogage et de trace ne sont pas obligatoires lors de l’utilisation de la TraceSwitch classe en isolation. Elles sont uniquement requises conjointement avec ou Debug méthodes Trace 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.

Note

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

Constructeurs

Nom Description
TraceSwitch(String, String, String)

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

TraceSwitch(String, String)

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

Propriétés

Nom Description
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 actuel pour ce commutateur.

(Hérité de Switch)
TraceError

Obtient une valeur indiquant si le commutateur autorise les messages de gestion des erreurs.

TraceInfo

Obtient une valeur indiquant si le commutateur autorise les messages d’information.

TraceVerbose

Obtient une valeur indiquant si le commutateur autorise tous les messages.

TraceWarning

Obtient une valeur indiquant si le commutateur autorise les messages d’avertissement.

Value

Obtient ou définit la valeur du commutateur.

(Hérité de Switch)

Méthodes

Nom Description
Equals(Object)

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

(Hérité de Object)
GetHashCode()

Sert 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 la Type de l’instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
OnSwitchSettingChanged()

Met à jour et corrige le niveau de ce commutateur.

OnValueChanged()

Définit la SwitchSetting propriété sur l’équivalent entier de la Value propriété.

Refresh()

Actualise les données de configuration de trace.

(Hérité de Switch)
ToString()

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

(Hérité de Object)

S’applique à

Voir aussi