TraceSwitch Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Fornece um comutador multinível para controlar o rastreio e a saída de depuração sem recompilar o seu 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 seguinte cria um novo TraceSwitch e usa o interruptor para determinar se deve imprimir mensagens de erro. A troca é criada ao nível da turma.
MyMethod escreve a primeira mensagem de erro se a Level propriedade estiver definida como TraceLevel.Error ou superior. No entanto, MyMethod não escreve a segunda mensagem de erro se o Level for menor que 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
Observações
Pode usar um interruptor de rastreamento para filtrar mensagens com base na sua importância. A TraceSwitch classe fornece as TraceErrorpropriedades , TraceWarning, TraceInfo, e TraceVerbose para testar o nível do comutador. A Level propriedade obtém ou define o TraceLevelinterruptor de .
Podes criar um TraceSwitch no teu código e definir o nível diretamente para instrumentar uma secção específica do código.
Apenas em aplicações .NET Framework, também podes definir o nível de um TraceSwitch através do ficheiro de configuração da aplicação e depois usar o nível TraceSwitch configurado na tua aplicação. No ficheiro de configuração da aplicação, pode adicionar ou remover um interruptor, definir o valor de um interruptor ou limpar todos os interruptores previamente definidos pela aplicação. O ficheiro de configuração deve ser formatado como o seguinte exemplo:
<configuration>
<system.diagnostics>
<switches>
<add name="mySwitch" value="1" />
</switches>
</system.diagnostics>
</configuration>
Esta secção de configuração define a TraceSwitch com o DisplayName conjunto a mySwitch, e o Level conjunto a 1, que corresponde ao valor TraceLevel.Errorde enumeração .
Note
Também podes usar texto para especificar o valor de um interruptor. Por exemplo, true para um BooleanSwitch, ou o texto que representa um valor de enumeração, como Error para um TraceSwitch. A reta <add name="mySwitch" value="Error" /> é equivalente a <add name="mySwitch" value="1" />.
Na sua aplicação, pode usar o nível do switch configurado criando um TraceSwitch com o mesmo nome, como mostrado no exemplo seguinte:
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
Na .NET Core e .NET aplicações 5+, o Level da nova Switch passa por defeito a TraceLevel.Off.
Nas aplicações .NET Framework, a propriedade switch Level tem por defeito o valor especificado no ficheiro de configuração. Se o TraceSwitch construtor não conseguir encontrar as definições iniciais do comutador no ficheiro de configuração, Level o novo comutador por defeito é TraceLevel.Off.
Tens de ativar o rastreamento ou depuração para usar um switch. A sintaxe seguinte é específica do compilador. Se usar compiladores que não sejam C# ou Visual Basic, consulte a documentação do seu compilador.
Para permitir a depuração em C#, adicione a
/d:DEBUGflag à linha de comandos do compilador quando compilar o seu código, ou adicione#define DEBUGno topo do seu ficheiro. Em Visual Basic, adicione a flag/d:DEBUG=Trueà linha de comandos do compilador.Para ativar o traçado em C#, adicione a
/d:TRACEflag à linha de comandos do compilador quando compilar o seu código, ou adicione#define TRACEno topo do seu ficheiro. Em Visual Basic, adicione a flag/d:TRACE=Trueà linha de comandos do compilador.
Note
Estes comutadores de compilador de depuração e traço não são necessários quando a classe é usada TraceSwitch isoladamente. São apenas exigidos em conjunto com Trace ou Debug métodos que sejam compilados condicionalmente.
Para mais informações sobre a instrumentação da sua aplicação, consulte Debug e Trace. Para mais informações sobre a configuração e utilização de comutadores de traço, consulte Comutadores de Traço.
Note
Para melhorar o desempenho, pode criar TraceSwitch membros static na sua turma.
Construtores
| Name | Description |
|---|---|
| TraceSwitch(String, String, String) |
Inicializa uma nova instância da TraceSwitch classe, usando o nome de visualização, descrição e valor padrão especificados para o switch. |
| TraceSwitch(String, String) |
Inicializa uma nova instância da TraceSwitch classe, usando o nome de exibição e a descrição especificados. |
Propriedades
| Name | Description |
|---|---|
| Attributes |
Obtém os atributos personalizados do switch definidos no ficheiro de configuração da aplicação. (Herdado de Switch) |
| Description |
Recebe uma descrição da mudança. (Herdado de Switch) |
| DisplayName |
Recebe um nome usado para identificar o interruptor. (Herdado de Switch) |
| Level |
Obtém ou define o nível de traço que determina as mensagens que o switch permite. |
| SwitchSetting |
Obtém ou define a configuração atual deste interruptor. (Herdado de Switch) |
| TraceError |
Recebe um valor que indica se o interruptor permite mensagens de tratamento de erros. |
| TraceInfo |
Recebe um valor que indica se o interruptor permite mensagens informativas. |
| TraceVerbose |
Recebe um valor que indica se o interruptor permite todas as mensagens. |
| TraceWarning |
Recebe um valor que indica se o interruptor permite mensagens de aviso. |
| Value |
Obtém ou define o valor do interruptor. (Herdado de Switch) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetSupportedAttributes() |
Obtém os atributos personalizados suportados pelo switch. (Herdado de Switch) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| OnSwitchSettingChanged() |
Atualiza e corrige o nível para esta mudança. |
| OnValueChanged() |
Define a SwitchSetting propriedade para o equivalente inteiro da Value propriedade. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |