TraceSwitch Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Fornece uma opção em vários níveis para controlar o rastreamento e depurar a saída sem recompilar o código.
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
Exemplos
O exemplo de código a seguir cria um novo TraceSwitch e usa a opção para determinar se as mensagens de erro devem ser impressas. A opção é criada no nível da classe. MyMethod
gravará a primeira mensagem de erro se a Level propriedade estiver definida como TraceLevel.Error ou superior. No entanto, MyMethod
não gravará a segunda mensagem de erro se for Level menor que 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 um comutador de rastreamento para filtrar mensagens com base em sua importância. A TraceSwitch classe fornece as TraceErrorpropriedades , TraceWarning, TraceInfoe TraceVerbose para testar o nível da opção. A Level propriedade obtém ou define o do TraceLevelcomutador.
Você pode criar um TraceSwitch em seu código e definir o nível diretamente para instrumentar uma seção específica do código.
Somente em aplicativos .NET Framework, você também pode definir o nível de um TraceSwitch por meio do arquivo de configuração do aplicativo e, em seguida, usar o nível configurado TraceSwitch em seu aplicativo. No arquivo de configuração do aplicativo, 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. O arquivo de configuração deve ser formatado como o exemplo a seguir:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Esta seção de configuração define um TraceSwitch com o DisplayName definido como mySwitch
e o Level definido como 1, que corresponde ao valor TraceLevel.Errorde enumeração .
Observação
Você também pode usar texto para especificar o valor de uma opção. Por exemplo, true
para um BooleanSwitchou o texto que representa um valor de enumeração, como Error
para um TraceSwitch. A linha <add name="mySwitch" value="Error" />
é equivalente a <add name="mySwitch" value="1" />
.
Em seu aplicativo, você pode usar o nível de comutador configurado criando um TraceSwitch com o mesmo nome, conforme mostrado no exemplo a seguir:
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
Em aplicativos .NET Core e .NET 5+, o Level da nova opção usa como padrão TraceLevel.Off.
Em aplicativos .NET Framework, a propriedade switch Level usa como padrão o valor especificado no arquivo de configuração. Se o TraceSwitch construtor não puder encontrar as configurações de comutador inicial no arquivo de configuração, Level a nova opção usará como padrão TraceLevel.Off.
Você deve habilitar o rastreamento ou a depuração para usar uma opção. A sintaxe a seguir é específica do compilador. Se você usar compiladores diferentes de C# ou Visual Basic, consulte a documentação do compilador.
Para habilitar a depuração em C#, adicione o
/d:DEBUG
sinalizador à linha de comando do compilador ao compilar o código ou adicione#define DEBUG
à parte superior do arquivo. No Visual Basic, adicione o/d:DEBUG=True
sinalizador à linha de comando do compilador.Para habilitar o rastreamento em C#, adicione o
/d:TRACE
sinalizador à linha de comando do compilador ao compilar o código ou adicione#define TRACE
à parte superior do arquivo. No Visual Basic, adicione o/d:TRACE=True
sinalizador à linha de comando do compilador.
Observação
Essas opções do compilador de depuração e rastreamento não são necessárias ao usar a TraceSwitch classe isoladamente. Eles são necessários apenas em conjunto com Trace métodos ou Debug que são compilados condicionalmente.
Para obter mais informações sobre como instrumentar seu aplicativo, consulte Debug e Trace. Para obter mais informações sobre como configurar e usar comutadores de rastreamento, consulte Opções de rastreamento.
Observação
Para melhorar o desempenho, você pode criar TraceSwitch membros static
em sua classe.
Construtores
TraceSwitch(String, String) |
Inicializa uma nova instância da classe TraceSwitch usando o nome de exibição e a descrição especificados. |
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. |
Propriedades
Attributes |
Obtém os atributos de opção personalizados definidos no arquivo de configuração de aplicativo. (Herdado de Switch) |
DefaultValue |
Obtém o valor padrão atribuído no construtor. (Herdado de Switch) |
Description |
Obtém uma descrição do comutador. (Herdado de Switch) |
DisplayName |
Obtém o nome usado para identificar o comutador. (Herdado de Switch) |
Level |
Obtém ou define o nível de rastreamento que determina as mensagens que o comutador permite. |
SwitchSetting |
Obtém ou define a configuração atual para essa opção. (Herdado de Switch) |
TraceError |
Obtém um valor que indica se a opção permite mensagens de tratamento de erro. |
TraceInfo |
Obtém um valor que indica se a opção permite mensagens informativas. |
TraceVerbose |
Obtém um valor que indica se a opção permite todas as mensagens. |
TraceWarning |
Obtém um valor que indica se a opção permite mensagens de aviso. |
Value |
Obtém ou define o valor da opção. (Herdado de Switch) |
Métodos
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetSupportedAttributes() |
Obtém os atributos personalizados com suporte do comutador. (Herdado de Switch) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnSwitchSettingChanged() |
Atualiza e corrige o nível desse comutador. |
OnValueChanged() |
Define a propriedade SwitchSetting como o inteiro equivalente da propriedade Value. |
OnValueChanged() |
Invocado quando a propriedade Value é alterada. (Herdado de Switch) |
Refresh() |
Atualiza os dados de configuração de rastreamento. (Herdado de Switch) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |