Busca online em todo site:
Heroes

Você não está logado, deseja logar na comunidade? clique aqui.




Título do Artigo

Event Log Parte II - Visual Studio.NET 2005


Data Publicação: 3/4/2006 8:31:01
Total de visualizações: 1924

comente
 


Olá pessoal, meu nome é Maurício Júnior e estou disposto a mostrar o sobre o Event Log parte II na prática. A parte I está disponível no site www.aspneti.com ou www.aspneti.com.br. Já foi mostrado onde é gravado todos os erros dentro do sistema operacional quando a aplicação gera um erro inesperado, agora na prática mostrarei como cadastrar esse erro inesperado dentro do programa Event View ou Visualizar Eventos.

 

Requisitos:

 

- Usar IDE Visual Studio.NET 2005;

- Conhecimento de sistema operacional windows;

- Conhecimento avançado C#.NET.

 

Na Prática

 

Antes de tudo, deve importar a classe de Diagnostics no início. (1.1 – Event Log – Parte II)

 

 

using System.Diagnostics;

 

Referência: 1.1 Event Log – Parte II

 

Depois de tudo, o código construído dentro da classe deve estar dentro dos blocos try e catch. (1.2 – Event Log – Parte II).

 

 

 

        public void metodo()

        {

            try

            {

                //codigo da classe

            }

            catch (Exception ex)

            {

                // codigo da classe

            }

        }

 

Referência: 1.2 Event Log – Parte II

 

 

Explicação:

 

Dentro do bloco try, todo o código é feito normalmente, pode ser o que for sem medo de nada, ou seja, apenas uma linha de imprimir algum resultado. Se no caso ocorrer algum tipo de erro inesperado, será o foco do código será redirecionado para dentro do bloco catch, ou seja, irá tentar pegar o erro gerado pela aplicação.

 

Segue um exemplo da classe que insere no banco de dados alguns valores. (1.3 Event Log – Parte II).

 

 

 

 

 

public void InsertFechamentoAgendado(TO to)

        {

            StringBuilder str = new StringBuilder();

            str.Append("insert into FechAgendadoControle (");

            str.Append(" DataProcessamento, NumCooperativa, IdProduto, ");

            str.Append(" OrdemProduto, HorarioAgendado )");

            str.Append(" values ( @dataProcessamento, @numCooperativa, ");

            str.Append(" @idProduto, @ordemProduto, @horarioAgendado )");

 

            StringConnection = GetConnection();

            SqlConnection conn = SetSqlConnection();

 

            try

            {

                SqlCommand cmd = new SqlCommand(str.ToString(), conn);

 

                //setar parametros

                setParametro(to, cmd);

 

                cmd.CommandTimeout = 240;

 

                conn.Open();

                cmd.ExecuteNonQuery();

            }

            catch (Exception ex)

            {

                //codigo

            }

            finally

            {

                conn.Close();

            }

        }

Referência: 1.3 Event Log – Parte II

 

 

Note que existe o código feito dentro do bloco try, ou seja, todas as linhas dentro podem dar algum tipo de erro na aplicação, por isso foram colocadas dentro do bloco. Para publicar um erro no visualizador do windows basta colocar o código dentro do bloco catch. Sempre coloco o tipo de entrada como Exception para que qualquer tipo de erro seja capturado, se existe um outro tipo de erro mais específico, deve ser colocado outro bloco antes do genérico. (1.4 Event Log – Parte II).

 

 

 

 

            try

            {

               

            }

            catch (SqlException ex)

            {

               

            }

            catch (Exception ex)

            {

               

            }

 

Referência: 1.4 Event Log – Parte II

 

 

Depois de entender tudo sobre o catch, mostro e explico como gerar o erro dentro do evento do windows. (1.5 – Event Log – Parte II).

 

 

            catch (Exception ex)

            {

                //registra o erro no event log

                EventLog log = new EventLog();

                log.Source = "Service Primeiro";

                log.WriteEntry("Classe: Dall Service \r\n" +

                               "Método: InsertFechamentoAgendado \r\n" +

                               "Mensagem de erro: " + ex.Message + "\r\n \r\n" +

                               "StatTrace: " + ex.StackTrace, EventLogEntryType.Error);

 

                throw ex;

            }

Referência: 1.4 Event Log – Parte II

 

Explicação:

 

O primeiro de tudo foi instanciar o EventLog da forma (1.5 Event Log – Parte II).

 

EventLog log = new EventLog();

 

Referência: 1.5 Event Log – Parte II

 

 

O segundo passo digita a variável log para registrar o Source, ou seja, o nome que irá aparecer na entrada do programa, a identificação de qual foi o programa que deu erro. (1.5 Event Log – Parte II)

.

 

 

log.Source = "Service Primeiro";

 

Referência: 1.5 Event Log – Parte II

 

 

O terceiro passo é pegar a descrição do erro, identificar a classe que aconteceu o erro, ficando assim melhor o reconhecimento dentro do programa visualizador do sistema operacional Windows. (1.6 Event Log – Parte II).

 

 

 

log.WriteEntry("Classe: Dall Service \r\n" +

"Método: InsertFechamentoAgendado \r\n" +

"Mensagem de erro: " + ex.Message + "\r\n \r\n" +

"StatTrace: " + ex.StackTrace, EventLogEntryType.Error);

 

Referência: 1.6 Event Log – Parte II

 

 

O commando log.WriteEntry apenas escreve a descrição do erro dentro do campo descrição do programa. Note que sempre identifico a classe, método e mensagem de erro todas juntas.

 

A referência (1.7 Event Log – Parte II) mostra como ficará dentro do event view.

 

 

 

Classe: Dall Service

Método: GeraXMLDocument

Mensagem de erro: Caracteres inválidos no caminho.

 

StatTrace:    em System.IO.Path.CheckInvalidPathChars(String path)

   em System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)

   em System.IO.Path.GetFullPathInternal(String path)

   em System.IO.Path.GetFullPath(String path)

   em System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)

   em System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)

   em System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt)

   em System.Xml.XmlTextReader..ctor(String url, XmlNameTable nt)

   em System.Xml.XmlDocument.Load(String filename)

   em Bancoob.ServicePrimeiro.Dall.DallService.GeraXMLDocument(DataSet dtSet) na c:\Mauricio\Projetos Bancoob\Fechamento Agendado\Web\App_Code\Dall\DallService.cs:linha 164

 

Para obter mais informações, visite o Centro de ajuda e suporte em http://go.microsoft.com/fwlink/events.asp.

 

Referência: 1.7 Event Log – Parte II

 

Segue a figura de ilustração. (1.8 Event Log – Parte II).

 

 

Referência: 1.8 Event Log – Parte II.

 

Bom, fico por aqui.

Mauricio Junior

www.ascompras.com

www.aspneti.com

 



Total de visualizações: 1924
voltar   comente  subir

Autor:


Por:Mauricio Junior
Maurício Júnior
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 27 anos e possuo sete livros publicados pela editora Ciência Moderna no ano de 2009. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.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.orgSite pessoal  www.mauriciojunior.org


Comentários:


Comente (dê sua opinião): VOCÊ PRECISA ESTAR LOGADO

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

Desktop Linux Ubuntu
DataGrid Mobile
Conecte - netBOOKS
Registro Encontro .NET (Fotos)
Ebook Grátis Microsoft
Garmin Asus com Windows Mobile 6.5.3
Detectando erro a todo custo
Tata Motors (Grupo TCS)
Armazenando Dados no ViewState Parte II
Vídeo Live Search
ASP.NET 4.0 and Visual Studio 2010 Web Development Beta 2 Overview
Promoção ASPNETi.COM versus Autor - e-Books grátis hoje e amanhã
Criptografia de String de Conexão no Web.Config
Internet Explorer 8
Confira os 5 primeiros ganhadores da promoção assinatura online grátis DEVMEDIA.COM e ASPNETI.COM
Usando themes ASP.NET 2.0 (Parte 1)
Web 2.0 - A máquina somos nós
Certificação para Profissional de TI
E-mail Carta de Amor - Vírus
Permissão de Página Utilizando Web.Config
Criando TreeView com Visual Studio.NET 2005 (passo 1)
Novo SO Palm, depois da venda...
Deixando o rodapé fixo
Microsoft Mobile Explorer 3.0
Seria o novo Windows Mobile 7 ?
Virtual Earth – Primeiro Passo
MSDN Media Center - download de vídeos
Chamando Programas de Dentro do Windows Forms
O vírus do curriculum
Formatando String rapidamente
Vírus - Telegrama Eletrônico
Evento Brasil DotNet - gratuíto
Evento BrasilDotNet 2008
Alongar é preciso
Desktop 3D

Publicidade:

[sumir] [aparecer]
NETITC




Informações Online:

Usuários Online: 1315
Artigos:  649
Vídeos:  47
PodCast's:  31
Fórum:  3098
Empregos:  1223
Usuários Cadastrados: 5778

Categoria de Artigos

Vídeos

Enquete - Dê sua opinião

 Os podcasts tem sido proveitoso pra você?

 

Colaboradores

Foto Autor autor: Mauricio Junior   
publicou 377 artigo(s).
Foto Autor autor: Júlio Battisti   
publicou 51 artigo(s).
Foto Autor autor: Fabio Galante Mans   
publicou 28 artigo(s).
Foto Autor autor: Kleber Becerra   
publicou 10 artigo(s).
Foto Autor autor: Ramon Durães   
publicou 6 artigo(s).
Foto Autor autor: Ebenézer de Souza   
publicou 5 artigo(s).
Foto Autor autor: Fabio Aguiar   
publicou 4 artigo(s).
NETITC