TraceSwitch TraceSwitch TraceSwitch TraceSwitch Class

Definição

Fornece uma opção em vários níveis para controlar o rastreamento e depurar a saída sem recompilar o código.Provides a multilevel switch to control tracing and debug output without recompiling your code.

public ref class TraceSwitch : System::Diagnostics::Switch
public class TraceSwitch : System.Diagnostics.Switch
type TraceSwitch = class
    inherit Switch
Public Class TraceSwitch
Inherits Switch
Herança
TraceSwitchTraceSwitchTraceSwitchTraceSwitch

Exemplos

O exemplo de código a seguir cria TraceSwitch um novo e usa a opção para determinar se as mensagens de erro devem ser impressas.The following code example creates a new TraceSwitch and uses the switch to determine whether to print error messages. A opção é criada no nível de classe.The switch is created at the class level. MyMethodgravará a primeira mensagem de erro Level se a propriedade for TraceLevel.Error definida como ou superior.MyMethod writes the first error message if the Level property is set to TraceLevel.Error or higher. No entanto, MyMethod o não gravará a segunda mensagem Level de erro se TraceLevel.Verbosefor menor que.However, MyMethod does not write the second error message if the Level is less than TraceLevel.Verbose.

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

Comentários

Você pode usar uma opção de rastreamento para filtrar mensagens com base em sua importância.You can use a trace switch to filter out messages based on their importance. A TraceSwitch TraceWarningclasse fornece as TraceError PropriedadesTraceVerbose , TraceInfo, e para testar o nível da opção.The TraceSwitch class provides the TraceError, TraceWarning, TraceInfo, and TraceVerbose properties to test the level of the switch. A Level propriedade Obtém ou define a TraceLevelopção.The Level property gets or sets the switch's TraceLevel.

Você pode definir o nível de um TraceSwitch por meio do arquivo de configuração de aplicativo e, TraceSwitch em seguida, usar o nível configurado em seu aplicativo.You can set the level of a TraceSwitch through the application configuration file and then use the configured TraceSwitch level in your application. Como alternativa, você pode criar um TraceSwitch em seu código e definir o nível diretamente para instrumentar uma seção específica de código.Alternately, you can create a TraceSwitch in your code and set the level directly to instrument a specific section of code.

Para configurar um TraceSwitch, edite o arquivo de configuração para seu aplicativo.To configure a TraceSwitch, edit the configuration file for your application. Nesse arquivo, você pode adicionar ou remover uma opção, definir o valor de uma opção ou limpar todas as opções definidas anteriormente pelo aplicativo.In this file, you can add or remove a switch, set a switch's value, or clear all the switches previously set by the application. O arquivo de configuração deve ser formatado como o exemplo a seguir:The configuration file should be formatted like the following example:

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

Esta seção de configuração define TraceSwitch um com DisplayName o definido mySwitchcomo e o Level definido como 1, que corresponde ao valor TraceLevel.Errorde enumeração.This configuration section defines a TraceSwitch with the DisplayName set to mySwitch, and the Level set to 1, which corresponds to the enumeration value TraceLevel.Error.

Observação

No .NET Framework versão 2.0, você pode usar o texto para especificar o valor de uma opção.In the .NET Framework version 2.0, you can use text to specify the value for a switch. Por exemplo, true para um BooleanSwitch ou o texto que representa um valor Error de enumeração, como para TraceSwitchum.For example, true for a BooleanSwitch or the text representing an enumeration value, such as Error for a TraceSwitch. A linha <add name="mySwitch" value="Error" /> é equivalente a <add name="mySwitch" value="1" />.The line <add name="mySwitch" value="Error" /> is equivalent to <add name="mySwitch" value="1" />.

Em seu aplicativo, você pode usar o nível de opção configurado criando um TraceSwitch com o mesmo nome, conforme mostrado no exemplo a seguir:In your application, you can use the configured switch level by creating a TraceSwitch with the same name, as shown in the following example:

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

Por padrão, a propriedade Level switch é definida usando o valor especificado no arquivo de configuração.By default, the switch Level property is set using the value specified in the configuration file. Se o TraceSwitch Construtor não puder localizar as configurações de comutador iniciais no arquivo Level de configuração, o do novo comutador será padronizado para TraceLevel.Off.If the TraceSwitch constructor cannot find initial switch settings in the configuration file, the Level of the new switch defaults to TraceLevel.Off.

Você deve habilitar o rastreamento ou a depuração para usar uma opção.You must enable tracing or debugging to use a switch. A sintaxe a seguir é específica do compilador.The following syntax is compiler specific. Se você usar compiladores diferentes de C# ou Visual Basic, consulte a documentação do seu compilador.If you use compilers other than C# or Visual Basic, refer to the documentation for your compiler.

  • Para habilitar a depuração C#no, adicione /d:DEBUG o sinalizador à linha de comando do compilador ao compilar o código ou adicione #define DEBUG -o à parte superior do arquivo.To enable debugging in C#, add the /d:DEBUG flag to the compiler command line when you compile your code, or add #define DEBUG to the top of your file. Em Visual Basic, adicione o /d:DEBUG=True sinalizador à linha de comando do compilador.In Visual Basic, add the /d:DEBUG=True flag to the compiler command line.

  • Para habilitar o rastreamento C#no, adicione /d:TRACE o sinalizador à linha de comando do compilador ao compilar o código ou adicione #define TRACE -o à parte superior do arquivo.To enable tracing in C#, add the /d:TRACE flag to the compiler command line when you compile your code, or add #define TRACE to the top of your file. Em Visual Basic, adicione o /d:TRACE=True sinalizador à linha de comando do compilador.In Visual Basic, add the /d:TRACE=True flag to the compiler command line.

Observação

Essas opções de compilador Debug e Trace não são necessárias ao usar TraceSwitch a classe isoladamente.These debug and trace compiler switches are not required when using the TraceSwitch class in isolation. Eles só são necessários em conjunto com Trace os Debug métodos ou que são compilados condicionalmente.They are only required in conjunction with Trace or Debug methods that are conditionally compiled.

Para obter mais informações sobre como instrumentar seu aplicativo Debug , Traceconsulte e.For more information on instrumenting your application, see Debug and Trace. Para obter mais informações sobre como configurar e usar opções de rastreamento, consulte Opções de rastreamento.For more information about configuring and using trace switches, see Trace Switches.

Observação

Para melhorar o desempenho, você pode TraceSwitch criar static Membros em sua classe.To improve performance, you can make TraceSwitch members static in your class.

Construtores

TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String) TraceSwitch(String, String)

Inicializa uma nova instância da classe TraceSwitch usando o nome de exibição e a descrição especificados.Initializes a new instance of the TraceSwitch class, using the specified display name and description.

TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String) TraceSwitch(String, String, String)

Inicializa uma nova instância da classe TraceSwitch usando o nome de exibição, a descrição e o valor padrão especificados para o comutador.Initializes a new instance of the TraceSwitch class, using the specified display name, description, and default value for the switch.

Propriedades

Attributes Attributes Attributes Attributes

Obtém os atributos de opção personalizados definidos no arquivo de configuração de aplicativo.Gets the custom switch attributes defined in the application configuration file.

(Inherited from Switch)
Description Description Description Description

Obtém uma descrição do comutador.Gets a description of the switch.

(Inherited from Switch)
DisplayName DisplayName DisplayName DisplayName

Obtém o nome usado para identificar o comutador.Gets a name used to identify the switch.

(Inherited from Switch)
Level Level Level Level

Obtém ou define o nível de rastreamento que determina as mensagens que o comutador permite.Gets or sets the trace level that determines the messages the switch allows.

SwitchSetting SwitchSetting SwitchSetting SwitchSetting

Obtém ou define a configuração atual para essa opção.Gets or sets the current setting for this switch.

(Inherited from Switch)
TraceError TraceError TraceError TraceError

Obtém um valor que indica se a opção permite mensagens de tratamento de erro.Gets a value indicating whether the switch allows error-handling messages.

TraceInfo TraceInfo TraceInfo TraceInfo

Obtém um valor que indica se a opção permite mensagens informativas.Gets a value indicating whether the switch allows informational messages.

TraceVerbose TraceVerbose TraceVerbose TraceVerbose

Obtém um valor que indica se a opção permite todas as mensagens.Gets a value indicating whether the switch allows all messages.

TraceWarning TraceWarning TraceWarning TraceWarning

Obtém um valor que indica se a opção permite mensagens de aviso.Gets a value indicating whether the switch allows warning messages.

Value Value Value Value

Obtém ou define o valor da opção.Gets or sets the value of the switch.

(Inherited from Switch)

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes() GetSupportedAttributes()

Obtém os atributos personalizados com suporte do comutador.Gets the custom attributes supported by the switch.

(Inherited from Switch)
GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged() OnSwitchSettingChanged()

Atualiza e corrige o nível desse comutador.Updates and corrects the level for this switch.

OnValueChanged() OnValueChanged() OnValueChanged() OnValueChanged()

Define a propriedade SwitchSetting como o inteiro equivalente da propriedade Value.Sets the SwitchSetting property to the integer equivalent of the Value property.

ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Aplica-se a

Veja também