Gravando Erros com Exception - Parte I


por Mauricio Junior em 1/1/2011 0

Usando arquivo de log.

 

 

 

Olá pessoal, meu nome é Mauricio Junior. Irei mostrar como gravar dentro de um arquivo de log, os erros gerados de dentro da sua aplicação. Nesse primeiro passo irei criar uma classe chamada AppException.cs com um método chamado LogErro.

 

Requisitos:

- Ferramenta Visual Studio.NET 2003 ou 2005;

- Conhecimento em escrita de arquivo;

- Conhecimento da linguagem C#.NET.

 

Criarei usando a IDE 2003 da Microsoft. (Referência 1.1 – Exception Parte I)

 

Referência: 1.1 – Exception Parte I

 

Criação da classe (Referência 1.2 – Exception Parte I)

 

 

Referência: 1.2 – Exception Parte I

 

 

A referência 1.2 apenas mostra a classe que gerei dentro da pasta WEB. No próximo passo é gerar o método que registra o log dentro do arquivo de erro.log. (Referência 1.3 – Exception Parte I)

 

 

public static void LogError(string message)

         {

              HttpContext context = HttpContext.Current;

              string filePath = context.Server.MapPath(System.Convert.ToString(System.Configuration.ConfigurationSettings.AppSettings["ErrorLogFile"]));

              int gmtOffset = DateTime.Compare(DateTime.Now, DateTime.UtcNow);

              string gmtPrefix;

              if (gmtOffset > 0)

              {

                   gmtPrefix = "+";

              }

              else

              {

                   gmtPrefix = "";

              }

              string errorDateTime = DateTime.Now.Year.ToString() + "." + DateTime.Now.Month.ToString() + "." + DateTime.Now.Day.ToString() + " @ " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString() + " (GMT " + gmtPrefix + gmtOffset.ToString() + ")";

              try

              {

                   System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, true);

                   sw.WriteLine("## " + errorDateTime + " ## " + message + " ##");

                   sw.Close();

              }

              catch

              {

              }

         }

 

Referência: 1.4 – Exception Parte I

 

Explicação:

Começando com a assinatura do método.

 

 

 

 

public static void LogError(string message)

 

Referência: 1.5 – Exception Parte I

 

É um método publico e estático que não retorna valor algum e recebe um parâmetro de entrada do tipo string.

 

 

HttpContext context = HttpContext.Current;

              string filePath = context.Server.MapPath(System.Convert.ToString(System.Configuration.ConfigurationSettings.AppSettings["ErrorLogFile"]));

 

Referência: 1.6 – Exception Parte I

 

A referência 1.6 apenas pego a configuração do arquivo que está descrito dentro do arquivo de configuração web.config. Mostrarei o mesmo mais pra frente.

 

 

int gmtOffset = DateTime.Compare(DateTime.Now, DateTime.UtcNow);

              string gmtPrefix;

              if (gmtOffset > 0)

              {

                   gmtPrefix = "+";

              }

              else

              {

                   gmtPrefix = "";

              }

              string errorDateTime = DateTime.Now.Year.ToString() + "." + DateTime.Now.Month.ToString() + "." + DateTime.Now.Day.ToString() + " @ " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString() + " (GMT " + gmtPrefix + gmtOffset.ToString() + ")";

 

Referência: 1.7 – Exception Parte I

 

A referência 1.7, configuro apenas as horas, data, segundo e minuto que irá ser gravado junto ao arquivo de configuração.

 

 

               try

              {

                   System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, true);

                   sw.WriteLine("## " + errorDateTime + " ## " + message + " ##");

                   sw.Close();

              }

              catch

              {

              }

 

Referência: 1.8 – Exception Parte I

 

Essa última referência 1.8 apenas abre o arquivo e escreve os valores setados anteriormente dentro do arquivo e fecha.

 

 

 

Bom, fico por aqui.

No próximo passo mostrarei mais algumas configurações e métodos criados para utilização por completo.

 

Mauricio Junior

www.ascompras.com

www.aspneti.com

e-mail: mauricio@ascompras.com

 

 

voltar   comente  subir

 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:

Comente (dê sua opinião):
Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Orientação a Objetos com Visual Studio.NET 2005 (o famoso OO) – parte 1
Dica ASP.NET para alerta e nova página
Web 2.0 - A máquina somos nós
Comunicação .NET e VB 6.0 – Parte II - usando Visual Studio.NET 2005
Visual SourceSafe
Vídeo Sobre Atributes e String Builder com Visual Studio .NET 2005
Padrões de nomenclaturas
Saiba ganhar dinheiro navegando na internet
Convertendo e salvando imagens via código
Visual Studio 11 – Melhorias e inovações parte 5
Inside Xbox Live Game
User Control Windows executando no Internet Explorer (parte 2 de 2)
Saiba como fazer download de vídeo na web
Pegando IP da Máquina com CSharp
Construindo o Windows 8
Vídeo - Microsoft Surface Sphere
Virtual Earth – Primeiro Passo
Vídeo - Conecte
Configurar Style
Adicionando Ícones no Windows Forms
Usando public interface
Find My iPhone
Tecla ESC - Windows Forms
MSDN Media Center - download de vídeos
O segredo de utilizar ModalPopupExtender
Pegando erro na aplicação web
Registro Encontro .NET (Fotos)
Internet começa a ter ultra velocidade no Brasil
Review do Windows Phone, Games e Aplicativos
Chamando Programas de Dentro do Windows Forms
Vídeo - Serviços do Windows Live
Permissão de Página Utilizando Web.Config
Montando Menu Dinâmico com Banco de Dados
VSTS 2008
Retirar Tag HTML dos campos utilizando expressão