Tutorial – Log de Excepções ELMAH (Parte 1)

Marcas Technorati: ,,

Mudámos de casa – visitem o novo site em www.istomesmo.com

image Neste artigo vou-vos falar de um projecto open source que permite efectuar log de excepções inesperadas em aplicações WEB de uma forma simples, prática e eficiente.

O projecto ELMAH (Error Logging Modules and Handlers for ASP.NET) apareceu em 2004 como um projecto no MSDN para demonstrar o uso de Handlers e Módulos HTTP.

O objectivo deste projecto, que agora é open source, é interceptar todas as excepções inesperadas que ocorrem numa aplicação ASP.NET e dão origem ao famoso ecrã amarelo da morte (“yellow screen of death”).

image

Na imagem anterior, podemos ver um exemplo deste ecrã, mostrando uma excepção do tipo “System.DivideByZeroException“.

Estas excepções, como o próprio nome indica, são inesperadas, ou seja, ocorrem de um modo imprevisto. Quando um sistema se encontra em produção, necessitamos de uma forma de manter um log das excepções ocorridas, para podermos analisar e corrigir possíveis bugs da aplicação. É aqui que o ELMAH entra com todo o seu explendor e simplicidade.

A intenção dos criadores do ELMAH foi que a sua integração em aplicações web existentes fosse fácil e pouco intrusiva, pelo que apenas necessitamos de adicionar referência à sua dll, e definir algumas configurações no ficheiro web.config da aplicaçao.

O ELMAH fornece várias funcionalidades:

  1. Logging (XML, SQLite, MSSQL)
  2. Reporting (página HTML, RSS feed, RSS Digest e CSV)
  3. Notificações (através de e-mail de forma síncrona ou não)
  4. Filtragem (por tipo de excepção, no web.config ou programaticamente)
  5. Despoletar Excepções (não inesperadas)

Vamos então por mãos à obra e criar um projecto para testarmos todas estas funcionalidades. Começamos por criar um novo projecto web no visual studio. Na página inicial desse projecto, vamos adicionar um botão, e no evento “Click” vamos gerar uma excepção inesperada, efectuando uma divisão por zero.

image

Ao corrermos o site sem ser em modo debug (CTRL + F5), quando clicarmos no botão, é-nos apresentado o famoso ecrã amarelo com a excepção.

Agora que já temos excepções, vamos dotar um nosso site com o ELMAH para fazer a sua monitorização. Para isso, vamos até à página oficial do projecto:

http://code.google.com/p/elmah/

e efectuamos download da última versão com o source code:

ELMAH-1.0-BETA2-src.zip (no momento a 1.0 beta 2)

No nosso projecto, vamos adicionar uma referência à Elmah.dll que vem dentro da pasta “bin\net-2.0\Release\” do zip que efectuámos download.

image

Neste momento já temos a dll referenciada no projecto, podemos passar para as definições no web.config. Existe um web.config de exemplo, na pasta “samples” do zip que descarregámos. Se tiverem qualquer dúvida, poderão basear-se nesse ficheiro de exemplo.

No web.config do nosso projecto, vamos declarar os módulos do ELMAH:

image

Para este tutorial vamos declarar todos os módulos, mas caso algum dos módulos não seja necessário, a sua declaração não é obrigatória.

Falta-nos declarar o Http Handler do ELMAH:

image

NOTA:existem mais httphandlers e sectiongroups no web.config, por se tratar de um site ASP.NET 3.5, caso tenham criado um site ASP.NET 2.0 é provável que alguns destes não existam.

Neste momento temos o ELMAH configurado no web.config, apenas nos falta activar o log de erros através de um http module:

image

Terminámos o último passo, para efectuarmos o log de excepções da forma mais simples com o ELMAH. Podemos correr o nosso site sem ser em modo debug, e clicar no botão algumas vezes para gerarmos excepções. Depois, para acedermos à lista de excepções ocorridas, vamos navegar até ao http handler declarado no web.config (elmah.axd):

http://<endereço do site>/elmah.axd

Deverão obter algo semelhante à imagem seguinte:

image

Esta lista contém todas as excepções inesperadas ocorridas até ao momento na nossa aplicação. Se clicarmos no link “Details”, podemos ver os detalhes da excepção, e e inclusivamente ver a página de erro original (o famoso ecrã amarelo).

Esta lista é volátil, pois não está a ser guardada em nenhum suporte duradouro (sistema de ficheiros ou Base de dados), pelo que quando pararmos a aplicação a lista vai ser destruída.

No próximo artigo vou continuar a exemplificar as funcionalidades do projecto ELMAH.

Parte 2 -> https://istomesmo.wordpress.com/2008/02/20/tutorial-log-de-excepes-elmah-parte-2/

Até lá vão deixando os vossos comentários, dúvidas e sugestões.🙂

blog.istomesmo@gmail.com

Uma resposta

  1. Tutorial – Log de Excepes ELMAH (Parte 1) Isto Mesmo

    Neste artigo vou-vos falar de um projecto open source que permite efectuar log de excepes inesperadas em aplicaes WEB de uma forma simples, prtica e eficiente.

    O projecto ELMAH (Error Logging Modules and Handlers for ASP.NET) apareceu em 2004 c…

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 )

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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: