CRIAR LOG DE ERROS

LCSD 30/05/2007 15:03:01
#218919
Pessoal, bom dia

Gostaria de saber se existe alguma função que intercepte um erro em qualquer form, para q eu possa gerar um arquivo de log dos erros.....

Tipo, sem a necessidade de colocar uma função em cada form.
ALMARTI 30/05/2007 15:04:08
#218920
Vc tem MZtools? Se sim, de uma olhada em error handler.
LCSD 30/05/2007 15:27:07
#218927
vou olhar

LCSD 30/05/2007 15:30:30
#218928
Naum serve Almarti


ALMARTI 30/05/2007 15:32:19
#218929
Proque não?
LCSD 30/05/2007 15:46:27
#218934
Pq ele cria o tratamento de erro no modulo q eu estiver......
e o q eu quero eh uma função publica, que intercpte o erro onde quer que ele aconteça......

Dessa forma eu ja faço.....mas naum gero o logo.......pois em cada modulo teria q acrescentar linhas e tals.....


Talvez eu tenha me enganado, veja onde fui.....



ALMARTI 30/05/2007 16:05:48
#218936
Não conheço uma função que pegue genérica que faça isto. Eu fiz assim: Primeiro criei uma função simples que escreve textos:

Public Sub EscreverLog(eTipoDeLog As String, strMsg As String)

Dim intArq As String
Dim strPath As String


On Error GoTo EscreverLog_Error

If eTipoDeLog = "LogDeErro" Then
strPath = App.path & "\" & "Log.txt"
End If
If eTipoDeLog = "LogDeTrabalho" Then
strPath = App.path & "\" & "Log.txt"
End If


intArq = FreeFile

Open strPath For Append As intArq
Print #intArq, Date & " - " & Time & " > " & strMsg
Close (intArq)

Exit Sub

EscreverLog_Error:

MsgBox "LogDeErro", "Error " & err.Number & " (" & err.Description & ") in procedure EscreverLog of Módulo mdlPrincipal"
err.Clear
Resume Next
Exit Sub


End Sub



Em seguida, fui nas configurações do MZTools, em errorhandler e coloquei o seguinte código

On Error GoTo {PROCEDURE_NAME}_Error

{PROCEDURE_BODY}


Exit {PROCEDURE_TYPE}

{PROCEDURE_NAME}_Error:

EscreverLog LogDeErro, "Error " & Err.Number & " (" & Err.Description & ") in procedure {PROCEDURE_NAME} of {MODULE_TYPE} {MODULE_NAME} in line " & Str$(Erl)
Err.Clear
Resume Next
Exit {PROCEDURE_TYPE}

Com isto, todo vez que adiciono o errorhendlar em um evento ou modulo, ele já estará pronto para gravar o log
USUARIO.EXCLUIDOS 30/05/2007 16:41:56
#218946
O seguinte, embora VB seja uma linguagem mto bacana ela é ferramenta tal qual um martelo.
Do que é capaz um martelo sem as mãos habilidosas de um bom marceneiro ??

O que o Almarti falou ta certinho, basta vc criar uma função GLOBAL que receba como parametro o erro e grave o log, ae vc cria um modelo no MZToll e ele replica em toda função vc tem q tratar o erros.

A função q grava o log será uma só para todo o sistema ... e se criar uma dll servira pra outros sistemas tambem.

Não adianta ficar procurando mais, a resposta está aki.
LCSD 31/05/2007 17:15:54
#219194
Legal ALMARTI....o código eh bem objetivo, o unico problema é eu ter q alterar o tratamento de erros de todos os forms.....

Mas para novos projetos, vou utilizar este seu modelo.....


Se alguém mais tiver alguma idéia de como desenvolver a minha questão.......



Citação:

EMERSON_TADEU escreveu:
O seguinte, embora VB seja uma linguagem mto bacana ela é ferramenta tal qual um martelo.
Do que é capaz um martelo sem as mãos habilidosas de um bom marceneiro .. e o que ele faz estando com um escultor ??

O que o Almarti falou ta certinho, basta vc criar uma função GLOBAL que receba como parametro o erro e grave o log, ae vc cria um modelo no MZToll e ele replica em toda função vc tem q tratar o erros.

A função q grava o log será uma só para todo o sistema ... e se criar uma dll servira pra outros sistemas tambem.

Não adianta ficar procurando mais, a resposta está aki.



Emerson, concordo com vc, no que diz respeito ao martelo......

Mas vou continuar procurando sim, pq com CERTEZA, exite uma forma mais direta de interceptar os erros sem muitas alterações no projeto todo........


RICATOM 31/05/2007 17:54:52
#219220
Colega

Eu fiz um projeto, parecido com o que ALMARTI escreveu, veja

http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=6348

Neste exemplo, ele utiliza uma dll para enviar o relatorio de erro, mas andei tento problemas com ela (pois tinha cliente que simplesmente nao conseguia mandar) entao nos meus projetos alterei para enviar, via FTP, o relatorio de erro pro meu servidor.

Cara com isso consegui agilizar muito o suporte e correção de bugÂÂ's

Abs
LCSD 01/06/2007 00:29:52
#219256
dei uma olhada Ricardo, e eh muito interessante, mas cai na mesma condição.

Eu teria que re-codificar os tratamentos de erros de todos os forms.....

e isso seria inviavel.....vou continuar a pesquisar e colher exemplos.


Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas