Compartilhar via


Opções de rastreamento

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 comutadores de rastreamento permitem habilitar, desabilitar e filtrar a saída de rastreamento. Eles são objetos que existem em seu código e podem ser configurados externamente por meio 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, ativando ou desativando uma variedade de declarações de rastreamento. As classes TraceSwitch e SourceSwitch permitem que você habilite um comutador de rastreamento para um nível de rastreamento específico, de modo que as mensagens Trace ou TraceSource especificadas para esse nível e todos os níveis abaixo dele apareçam. Se você desabilitar a opção, as mensagens de rastreamento não serão exibidas. Todas essas classes derivam da classe abstrata (MustInherit) Switch, assim como qualquer interruptor desenvolvido pelo usuário.

Os comutadores de rastreamento podem ser úteis para filtrar informações. Por exemplo, talvez você queira ver cada mensagem 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 restante do aplicativo. Usando o arquivo .config para definir 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 comutadores de rastreamento.

Normalmente, um aplicativo implantado é executado com seus comutadores desabilitados, 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 à medida que o aplicativo é executado. Se ocorrer um problema durante a execução do aplicativo, você poderá interromper o aplicativo, habilitar as opções e reiniciar o aplicativo. Em seguida, as mensagens de rastreamento serão exibidas.

Para usar uma opção, primeiro você deve criar um objeto de opção com base em uma classe BooleanSwitch, uma classe TraceSwitch ou uma classe de opção definida pelo desenvolvedor. Para obter mais informações sobre como criar comutadores definidos 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. Depois, teste a configuração do objeto de opção em vários métodos de rastreamento Trace (ou Debug).

Níveis de rastreamento

Quando você usa TraceSwitch, há considerações adicionais. Um objeto TraceSwitch tem quatro propriedades que retornam valores boolianos indicando se a opção está definida como pelo menos um nível específico:

Os níveis permitem limitar a quantidade de informações de rastreamento que você recebe apenas para as informações necessárias para resolver um problema. Especifique o nível de detalhes desejado na saída de rastreamento definindo e configurando as 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 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 (Informações), por exemplo, mas forneça apenas um número de referência de erro no nível 1 (Erro). Cabe a você decidir qual esquema funciona melhor em seu aplicativo.

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 Somente 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 da opção. Ou seja, as informações de rastreamento são gravadas 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 poderá 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());

Opções definidas pelo desenvolvedor

Além de fornecer BooleanSwitch e TraceSwitch, você pode definir seus próprios comutadores herdando da classe Switch e substituindo os métodos de classe base com métodos personalizados. Para obter mais informações sobre como criar comutadores definidos pelo desenvolvedor, consulte a Switch classe na referência do .NET Framework.

Consulte também