CRIAR LOG DE ERROS
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.
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.
Vc tem MZtools? Se sim, de uma olhada em error handler.
vou olhar
Naum serve Almarti
Proque não?
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.....
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.....
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:
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
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
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.
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.
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.......
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........
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........
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
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
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.
Eu teria que re-codificar os tratamentos de erros de todos os forms.....
e isso seria inviavel.....vou continuar a pesquisar e colher exemplos.
Tópico encerrado , respostas não são mais permitidas