RSS

ASP.NET MVC – Catalogando erros e gerando logs com NLog

15 jan

 

No seguinte artigo, demonstrei como podemos rastrear Exceptions e exibir exatamente o arquivo, método e linha que ocorreu o erro.

Como viabilizamos este recurso eu te pergunto: Seria interessante no momento em que o erro ocorrer, automaticamente fosse gerado um arquivo de Log no sistema, ou um registro do erro no próprio Windows, ou até mesmo o envio automático de um e-mail, informando as informações sobre o erro? Justamente para maior controle sobre os erros do sistema, ajudando a uma eventual correção ou melhoria. Acredito que a resposta seja SIM.

Pensando nisto resolvi criar este artigo, que tem como objetivo exemplificar e demonstrar como podemos catalogar os erros ocorridos no sistema e automaticamente gerar um Log com os detalhes do mesmo e enviar um e-mail com tais informações. Para isto irei utilizar uma biblioteca de código livre chamado NLog.

O que é o NLog?

O NLog é uma biblioteca de código livre, onde permite processar mensagens de diagnóstico emitidas de qualquer linguagem . NET (C# ou Visual Basic).

Para mais informações e download do NLog clique aqui.

 

Catalogando e gerando o Log

Seguindo o artigo anterior, a primeira coisa a se fazer para que seja possível catalogar os erros, é justamente referenciar a DLL do NLog, conforme a figura 1.0

Figura 1.0

Agora iremos criar dois diretórios na raiz de nosso projeto, um chamado “ClassesLog” e outro chamado “Logs”.

No diretório “ClassesLog” iremos colocar todas as classes e interfaces de apoio referentes ao NLog, já na “Logs” será armazenado os logs com as informações sobre os erros gerados pelo sistema.

As classes e interfaces necessárias são:

  • ILogger.cs
  • LogUtility.cs
  • NLogLogger.cs
  • Log.cs

A figura 2.0 demonstra como deve ficar a estrutura de nosso projeto:

Figura 2.0

Conteúdo das Classes e Interfaces de apoio

Interface ILogger


 

 

 

 

 

 

 

Observe que a interface destrincha as assinaturas dos métodos, que no caso são os tipos de ações de eventos do sistema, onde será possível catalogar. São eles, informativos, warnings, erros e erros fatais.

 

Classe NLogLogger

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Esta classe efetivamente implementa a interface ILogger. Note que, ao enviar a Exception como parâmetro nos métodos Error e Fatal, é chamado método BuildExceptionMessage localizado na classe LogUtility.

 

Classe LogUtility


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Classe de apoio, realiza o tratamento da Exception enviada como parâmetro nos métodos da classe NLogLogger. É responsável por obter a URL do erro, a mensagem juntamente com a origem, a StackTrace e o método relacionado ao erro gerado.

 

Classe Log

 

 

 

 

 

 

Esta classe efetivamente retorna uma instancia da classe NLogLogger.

 

Configurando o NLog

Para realizarmos a configuração final do NLog é muito simples, a imagem abaixo demonstrará como podemos configurar o arquivo de configuração, chamado NLog.config, para o catalogo dos erros gerados, a geração do evento do erro no Windows e o envio automático de e-mail com as informações do erro.

Atenção: Apenas atente-se que, o arquivo NLog.config deve ficar na raiz do projeto.

 

 

Finalizando

Agora sim, basta colocarmos o seguinte código ClassesLog.Log.GetLogger().Error(error); em nosso Cath do método e se rodarmos nossa aplicação de teste note que, é catalogado o erro, enviado o e-mail e criado o evento no Windows:

Catalogo no arquivo log.txt

Envio do e-mail

Evento de erro do Windows

 

Para realizar o download do projeto clique aqui.

 

Até o próximo artigo.

Anúncios
 
2 Comentários

Publicado por em 15/01/2011 em ASP.NET, ASP.NET MVC, C#

 

Tags: , , ,

2 Respostas para “ASP.NET MVC – Catalogando erros e gerando logs com NLog

  1. Mirandinha

    13/09/2011 at 2:27 am

    Muito bom hein Zaquinha!!!

     

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: