VB - Criando um arquivo de Log de erros
Embora o Visual Basic 6 não apresente um modelo de tratamento de erros amigável podemos usar recursos simples de forma a fazer um registro de log de erros para nossa aplicação de forma a documentar as ocorrências do sistema durante sua utilização. Podemos usar recursos avançados como classes e criar verdadeiros sistemas de trace de erro.
Meu objetivo aqui é mais simples. Vou mostrar como criar de forma beeemmm simples um log de registro de erros. Acompanhe:
- primeiro você deve definir onde deseja gravar e o que deseja gravar.
Vou gravar o log no arquivo chamado logErros.log que estará na pasta c:\log\
Vou registrar no arquivo os seguintes dados :
Nome da aplicação
Versão
Descrição do erro
Numero do erro
A origem do erro
A hora da ocorrência
Inicie um novo projeto no VB. E no formulário padrão insira dois botões de comando e uma caixa de texto multiline.
O código abaixo representa o código associado ao evento Click do botão de comando : Gera Erro e Exibe Erros:
Private Sub
Command1_Click() On Error GoTo trata_Erro
'Estou forçando a ocorrência de um erro Private Sub Command2_Click() |
Percebeu que temos duas rotinas:
registraLogErros - passa os dados do erro para gravação no Log
leLog - lê o arquivo de log e exibe na caixa de texto
Estas rotinas deverão estar em um módulo do seu projeto. Inclua um módulo no menu Project|Add Module e insira o código abaixo:
Option
Explicit Public caminho As String Public Sub registraLogErros(ByVal lNumero As Long, ByVal sDescricao As String, ByVal sOrigem As String) 'define o objeto filesystem e demais variaveis Dim fso As New FileSystemObject Dim arquivo As File Dim arquivoLog As TextStream Dim msg As String 'se o arquivo não existir então cria If fso.FileExists(caminho) Then Set arquivo = fso.GetFile(caminho) Else Set arquivoLog = fso.CreateTextFile(caminho) arquivoLog.Close Set arquivo = fso.GetFile(caminho) End If 'prepara o arquivo para anexa os dados Set arquivoLog = arquivo.OpenAsTextStream(ForAppending) 'monta informações para gerar a linha com erro msg = App.EXEName & " V " & App.Major & " " & " , Err. no: " & lNumero & " : " & sDescricao & " , Orig.: " & sOrigem & " , " & Now() ' inclui linhas no arquivo texto arquivoLog.WriteLine msg ' escreve uma linha em branco no arquivo - se voce quiser 'arquivoLog.WriteBlankLines (1) 'fecha e libera o objeto arquivoLog.Close Set arquivoLog = Nothing Set fso = Nothing End Sub Public Sub leLog(t As Control) Dim fso As New FileSystemObject 'declara as variáveis objetos Dim arquivo As File Dim fsoStream As TextStream Dim strLinha As String Dim arquivologerros As String 'abre o arquivo para leitura If fso.FileExists(caminho) Then Set arquivo = fso.GetFile(caminho) Set fsoStream = arquivo.OpenAsTextStream(ForReading) Else MsgBox "O arquivo não existe", vbCritical Exit Sub End If ' le o arquivo linha a linha e exibe no text1 Do While Not fsoStream.AtEndOfStream strLinha = strLinha & fsoStream.ReadLine & vbCrLf t = strLinha Loop 'libera as variaveis objeto fsoStream.Close Set fsoStream = Nothing Set arquivo = Nothing Set fso = Nothing End Sub |
Eu estou usando o objeto FileSystemObject para criar , ler e exibir os dados do arquivo de log. O modelo de objetos FSO está contida na biblioteca Scripting, que está localizada no arquivo Scrrun.Dll. Crie uma referência a biblioteca marcando na caixa de diálogo References o item "Microsoft Scripting Runtime".
Nota: Como o modelo FSO não suporta ainda a criação de arquivos randômicos ou binários. Para criar estes tipos de arquivos, use o comando Open com o argumento Random ou Binary. Abaixo uma rotina que escreve no log de erros usando o comando Open:
Public Sub
registraLogErros(ByVal lNumero As Long, ByVal sDescricao As String, ByVal
sOrigem As String) Dim FileNum As Integer FileNum = FreeFile 'grava os erros no arquivo Erros.log Open caminho For Append As FileNum Write #FileNum, lNumero, sDescricao, sOrigem, Now() Close FileNum End Sub |
Para que tudo funcione você deve criar uma rotina sub Main no módulo com o código abaixo:
Private Sub
main() caminho = "c:\log\logErros.log" Form1.Show vbModal End Sub |
Deve declarar também na seção General Declarations do módulo a variável caminho:
Option Explicit
Public caminho As String
Pronto agora é rodar , gerar os erros e exibí-los:
Você pode estruturar melhor a rotina que gera o log . Fique a vontade...
Até o próximo artigo VB...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#