Partilhar via


Comutadores de rastreio

Nota

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.

As opções 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 BooleanSwitch classe atua como um interruptor de alternância, habilitando ou desabilitando uma variedade de instruções de rastreamento. As TraceSwitch classes e SourceSwitch permitem habilitar uma opção de rastreamento para um determinado nível de rastreamento para que as Trace mensagens 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 do abstrato (MustInherit) classe Switch, assim como qualquer switch desenvolvido pelo usuário.

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 opções 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)
Inativo 0 Nenhuma
Erro 1 Apenas mensagens de erro
Aviso 2 Mensagens de aviso e mensagens de erro
Informações 3 Mensagens informativas, mensagens de aviso e mensagens de erro
Verboso 4 Mensagens detalhadas, 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, TraceErrore TraceWarning também serão true, mas TraceVerbose pode muito bem 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());

Switches definidos pelo desenvolvedor

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.

Consulte também