Início > .NET Framework > Instrumentação .NET – Debug e Trace

Instrumentação .NET – Debug e Trace

Quantas vezes nós já passamos por situações em que após realizarmos todos os testes em nossa maquina, confirmamos que o sistema esta ok, porém quando enviamos para o servidor de homologação o sistema parece outro, cheio de erros. E a pior parte é que não podemos debugar no ambiente de homologação.  Isto se resume da frase: “Na minha maquina funciona”.

Para ajudar a resolver esses problemas o .NET Framework disponibiliza as classes de Debug e Trace dentro do namespace System.Diagnostics. As duas classes são implementadas da mesma maneira e tem comportamento semelhante. A principal diferença entre elas é que a classe Trace é utilizada quando sua aplicação esta compilada em modo de release e a Debug quando esta compilada em modo de Debug. Essas classes nos permitem criar logs, mensagens, PopUp entre outros para monitorar a aplicação.

Vou demonstrar como utilizar essas classes usando como exemplo a classe Debug,  mas você pode substituir pela classe Trace caso seja necessário.

Debug.Write(“Mensagem: Debug”); //Escreve um texto.

O texto irá aparecer na janela Output do Visual Studio.

image

O texto apareceu na janela de Output porque esta configurado por padrão para fazer isso. A saída do texto pode ser configurada com ajuda dos Listeners. Segue abaixo alguns exemplos.

Debug.Listeners.Add(new DefaultTraceListener()); //Listener padrão. Exibe as mensagens na janela de output do VS.
Debug.Listeners.Add(new TextWriterTraceListener(“Teste.txt”)); // Grava as mensagens em um arquivo texto.
Debug.Listeners.Add(new XmlWriterTraceListener(“teste.xml”)); //Grava as mensagens em um arquivo xml.
Debug.Listeners.Add(new EventLogTraceListener(new EventLog(“DebugLog”, “.”, “DebugSource”))); //Grava as mensagens no log do Windows.
Debug.Listeners.Add(new ConsoleTraceListener()); //Exibe as mensagens em uma janela console.

Você também pode usar o web.config ou app.config para configurar os Listeners. Segue abaixo alguns exemplos.

<system.diagnostics>
   <trace autoflush =”true” indentsize=”4″>
     <listeners>
       <add name=”TextTraceListener”
            type=”System.Diagnostics.TextWriterTraceListener”
            initializeData=”output.txt” />
       <add name=”XmlWriterTraceListener”
            type=”System.Diagnostics.XmlWriterTraceListener”
            initializeData=”output.xml” />
       <add name=”ConsoleTraceListener”
           type=”System.Diagnostics.ConsoleTraceListener” />
       <remove name=”Default” />
     </listeners>
   </trace>
</system.diagnostics>

Segue abaixo alguns métodos e propriedades interessantes para serem utilizados.

Debug.Assert(false, “Mensagem”); //Exibe a mensagem caso a condição seja falsa.
Debug.Write(“Mensagem”); //Exibe a mensagem
Debug.WriteLine(“Mensagem”); //Exibe a mensagem e pula uma linha
Debug.WriteIf(true, “Mensagem”); //Exibe a mensagem caso a condição seja verdadeira
Debug.WriteLineIf(true, “Mensagem”); //Exibe a mensagem caso a condição seja verdadeira e pula uma linha
Debug.Fail(“ErrorMensagem”); //Exibe uma mensagem de Erro.
Debug.Flush(); //Escreve toda as mensagem que estiverem na memória.
Debug.IndentSize = 10; // Tamanho da indentação das mensagens.
Debug.IndentLevel = 1; // Nível da indentação das mensagens.
Debug.Indent(); //Adiciona um nível de indentação para as próximas mensagens
Debug.Unindent(); //Retorna um nível de indentação para as próximas mensagens

Espero ter ajudado para que os próximos problemas que você tiver em produção não seja um pânico total. Basta usar o Trace para monitorar sua aplicação

 

 

 

Categorias:.NET Framework Etiquetas:, ,
  1. Ainda sem comentários.
  1. No trackbacks yet.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google photo

Está a comentar usando a sua conta Google Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

%d bloggers like this: