Página 1 de 1
Ativar .log de erro
Enviado: 04 Jan 2022 10:00
por KLEBERVO
Bom dia.
Gostaria de saber se o harbour 3.2 tem a opção de gerar o arquivo error.log, quando o .exe apresenta algum problema?
Atenciosamente,
Kleber Valentim
Ativar .log de erro
Enviado: 04 Jan 2022 11:45
por Jairo Maia
Não sei se tem alguma função nativa do Harbour, mas tem na xhb.lib, que funciona no Harbour.
Coloque a função xhb_ErrorSys() no inicio de seu sistema. Quando ocorrer um erro, será gerado o arquivo: error.log.
NOTA: Se você usa um ERRORSYS.PRG personalizado, ele será desconsiderado.
Ativar .log de erro
Enviado: 04 Jan 2022 13:22
por Itamar M. Lins Jr.
Olá!
gerar o arquivo error.log
O padrão do Harbour é hb_out.log
Se não gostar de hb_out.log tem uma função para colocar o nome que desejar.
Saudações,
Itamar M. Lins Jr.
Ativar .log de erro
Enviado: 05 Jan 2022 14:24
por KLEBERVO
Boa tarde
Muito grato, pela dica Jairo, inclui o xhb_erro.sys() e gerou o error.log, mas não aparece o processo final onde o erro realmente acontece, aparecendo até o penúltimo processo chamador...
Itamar, sem o xhb_error.sys() não gerou o hb_out.log.
Tem que habilitar alguma função?
Atenciosamente,
Kleber Valentim
Ativar .log de erro
Enviado: 05 Jan 2022 16:22
por Jairo Maia
Verdade! Testei aqui e realmente não mostra o "Trace". Mas acredito que em xHarbour funciona, em Harbour é que é diferente.
Veja aqui o fonte original:
https://raw.githubusercontent.com/vszak ... xhberr.prg
Veja que na função
xhb_DefError( oError ) está dessa forma:
Código: Selecionar todos
?
? "Error at...:", ProcName() + "(" + hb_ntos( ProcLine() ) + ") in module:", ProcFile()
n := 2
Precisa alterar para:
Código: Selecionar todos
n := 2
?
? "Error at...:", ProcName( n ) + "(" + hb_ntos( ProcLine( n ) ) + ") in module:", ProcFile( n )
Ai funciona o "trace". Em anexo o arquivo ERRORSYS.PRG já alterado, acrescente esse arquivo em seu script .Hbp:
Ativar .log de erro
Enviado: 05 Jan 2022 17:03
por Itamar M. Lins Jr.
Ola!
Itamar, sem o xhb_error.sys() não gerou o hb_out.log.
Baixou onde o HB3.2 ? é GCC ?
Aqui não faço nada, qualquer erro tem hb_out.log até no Linux.
Saudações,
Itamar M. Lins Jr.
Ativar .log de erro
Enviado: 05 Jan 2022 17:07
por Itamar M. Lins Jr.
Olá!
Veja aqui o fonte original
Esse é do 3.4
Saudações,
Itamar M. Lins Jr.
Ativar .log de erro
Enviado: 07 Jan 2022 08:16
por KLEBERVO
Bom dia
Segue versões:
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021,
https://harbour.github.io/
25/04/2018 07:33 2.016.523 gcc.exe
Atenciosamente,
Kleber Valentim
Ativar .log de erro
Enviado: 22 Jan 2022 07:59
por prmuller
Bom dia!
Aqui no forum temos a PCTerror() que talvez te ajude.
Veja aqui: search.php?fid[]=4
Sds,
Paulo Muller
Ativar .log de erro
Enviado: 25 Jan 2022 13:29
por JoséQuintas
Passei um link, mas é de um projeto particular, só está disponível pra mim.
Removi as mensagens referentes a ele.
Ativar .log de erro
Enviado: 26 Jan 2022 14:04
por Softwhouse
Vc é moderador ?
Ativar .log de erro
Enviado: 11 Fev 2022 17:31
por faustinofaria
Itamar e pessoal, boa tarde, tudo bem?!
Estou usando o Harbour 3.2.0dev com o .hbp com as opções:
-b
-osistema
-inc
-compr=yes
-lxhb
-lhbwin
-lhbct
-debug
-gui
Porém ele não gerou o hb_out.log.
Se eu acrescento o XHB_ERRORSYS(), ele gera o ERROR.LOG.
Não tenho nenhum código específico para tratar os erros.
Também testei o Set( _SET_HBOUTLOG , "ERROR.LOG" ), mas sem sucesso.
Grato pela ajuda!
Ativar .log de erro
Enviado: 11 Fev 2022 18:44
por Itamar M. Lins Jr.
Olá!
Porém ele não gerou o hb_out.log.
Eu passei informação errada.
Na verdade eu estou estudando esse assunto.
Eu uso Hwgui, e ela já puxa o hb_out.log por isso eu achava que era padrão. Mas não é.
Saudações,
Itamar M. Lins Jr.
Ativar .log de erro
Enviado: 13 Fev 2022 11:19
por Itamar M. Lins Jr.
Olá!
Consegui entender como funciona o tratamento de erro.(acredito)
Existem dois tratamentos de erros: Os possíveis erros internos do Harbour "hb_out.log" que mudamos pela função -> Set( _SET_HBOUTLOG , "ERROR.LOG" ), e o que aparece na TELA que é o nosso erro.
Essa da tela tem que ser "DIRECIONADA" para um arquivo, senão mostra aquela mensagem PADRÃO na TELA.
Para ativar precisa direcionar o erro através da função errorblock({|e| MeuTratamentoDoErro( e, oldErr ) } )
para uma função NOSSA.
Código: Selecionar todos
PROC MAIN
xhb_errorsys()
cls
use notthere new
return
compile/ link it with:
hbmk2 jun.prg xhb.hbc
Link explicando o assunto.
https://groups.google.com/g/harbour-users/c/RX93k4dlc78
A Hwgui tem o dela, fiz confusão pois aqui nos meus sistemas tem hb_out.log e outro em HTML que criei para mandar p/ email do erro.
Saudações,
Itamar M. Lins Jr.