Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.
Os interruptores de rastreamento permitem ativar, desativar e filtrar a saída de rastreamento. Eles são objetos que existem em seu código e podem ser configurados externamente através do arquivo .config. Há três tipos de opções de rastreamento fornecidas no .NET Framework: a BooleanSwitch classe, a TraceSwitch classe e a SourceSwitch classe. A classe BooleanSwitch atua como um interruptor, habilitando ou desabilitando uma variedade de declarações de rastreamento. As classes TraceSwitch e SourceSwitch permitem activar uma opção de comutação para um determinado nível de rastreamento, de modo que as mensagens Trace ou TraceSource especificadas para esse nível e todos os níveis abaixo dele apareçam. Se você desativar a opção, as mensagens de rastreamento não aparecerão. Todas essas classes derivam da classe abstrata (MustInherit) Switch, assim como qualquer *switch* desenvolvido pelo utilizador.
As opções de rastreamento podem ser úteis para filtrar informações. Por exemplo, talvez você queira ver todas as mensagens de rastreamento em um módulo de acesso a dados, mas apenas mensagens de erro no restante do aplicativo. Nesse caso, você usaria uma opção de rastreamento para o módulo de acesso a dados e uma opção para o resto do aplicativo. Usando o arquivo .config para configurar as opções para as configurações apropriadas, você pode controlar quais tipos de mensagem de rastreamento você recebeu. Para obter mais informações, consulte Como criar, inicializar e configurar interruptores de rastreamento.
Normalmente, um aplicativo implantado é executado com seus switches desativados, de modo que os usuários não precisam observar muitas mensagens de rastreamento irrelevantes aparecendo em uma tela ou preenchendo um arquivo de log enquanto o aplicativo é executado. Se surgir um problema durante a execução do aplicativo, você pode parar o aplicativo, habilitar as opções e reiniciar o aplicativo. Em seguida, as mensagens de rastreamento serão exibidas.
Para usar um switch, você deve primeiro criar um objeto switch a partir de uma classe BooleanSwitch , uma classe TraceSwitch ou uma classe switch definida pelo desenvolvedor. Para obter mais informações sobre como criar opções definidas pelo desenvolvedor, consulte a Switch classe na referência do .NET Framework. Em seguida, você define um valor de configuração que especifica quando o objeto switch deve ser usado. Em seguida, você testa a configuração do objeto switch em vários métodos de rastreamento Trace (ou Debug).
Níveis de rastreio
Quando você usa o TraceSwitch, há considerações adicionais. Um objeto TraceSwitch tem quatro propriedades que retornam valores booleanos indicando se o switch está definido para pelo menos um nível específico:
Os níveis permitem-lhe limitar a quantidade de informações de rastreio que recebe apenas às informações necessárias para resolver um problema. Você especifica o nível de detalhe desejado na saída de rastreamento definindo e configurando opções de rastreamento para o nível de rastreamento apropriado. Você pode receber mensagens de erro, mensagens de aviso, mensagens informativas, mensagens de rastreamento detalhadas ou nenhuma mensagem.
Cabe inteiramente a você decidir que tipo de mensagem associar a cada nível. Normalmente, o conteúdo das mensagens de rastreamento depende do que você associa a cada nível, mas você determina as diferenças entre os níveis. Talvez você queira fornecer descrições detalhadas de um problema no nível 3 (Info), por exemplo, mas forneça apenas um número de referência de erro no nível 1 (Erro). Cabe-lhe inteiramente a si decidir qual o esquema que funciona melhor na sua candidatura.
Essas propriedades correspondem aos valores de 1 a 4 da enumeração TraceLevel . A tabela a seguir lista os níveis da enumeração TraceLevel e seus valores.
| Valor enumerado | Valor inteiro | Tipo de mensagem exibida (ou gravada em um destino de saída especificado) |
|---|---|---|
| Desativado | 0 | Nenhum |
| Erro | 1 | Apenas mensagens de erro |
| Advertência | 2 | Mensagens de aviso e mensagens de erro |
| Informações | 3 | Mensagens informativas, mensagens de aviso e mensagens de erro |
| Verbose | 4 | Mensagens verbosas, mensagens informativas, mensagens de aviso e mensagens de erro |
As propriedades TraceSwitch indicam o nível máximo de rastreamento para o switch. Ou seja, as informações de rastreamento são escritas para o nível especificado, bem como para todos os níveis inferiores. Por exemplo, se TraceInfo for true, TraceError e TraceWarning também serão true, mas TraceVerbose pode ser false.
Essas propriedades são somente leitura. O objeto TraceSwitch os define automaticamente quando a propriedade TraceLevel é definida. Por exemplo:
Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
Interruptores Developer-Defined
Além de fornecer BooleanSwitch e TraceSwitch, você pode definir seus próprios switches herdando da classe Switch e substituindo os métodos de classe base por métodos personalizados. Para obter mais informações sobre como criar opções definidas pelo desenvolvedor, consulte a Switch classe na referência do .NET Framework.