Ativar .log de erro

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

KLEBERVO
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 22 Set 2021 11:29
Localização: CAIEIRAS

Ativar .log de erro

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Ativar .log de erro

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ativar .log de erro

Mensagem 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.

Código: Selecionar todos

 Set( _SET_HBOUTLOG[, <cFileName>] ) -> <cOldFileName>
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
KLEBERVO
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 22 Set 2021 11:29
Localização: CAIEIRAS

Ativar .log de erro

Mensagem 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
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Ativar .log de erro

Mensagem 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:
ERRORSYS.rar
(5.16 KiB) Baixado 208 vezes
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ativar .log de erro

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ativar .log de erro

Mensagem por Itamar M. Lins Jr. »

Olá!
Veja aqui o fonte original
Esse é do 3.4

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
KLEBERVO
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 22 Set 2021 11:29
Localização: CAIEIRAS

Ativar .log de erro

Mensagem 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
prmuller
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 11 Nov 2008 12:25
Localização: Vila Velha - ES

Ativar .log de erro

Mensagem por prmuller »

Bom dia!

Aqui no forum temos a PCTerror() que talvez te ajude.
Veja aqui: search.php?fid[]=4

Sds,

Paulo Muller
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Ativar .log de erro

Mensagem por JoséQuintas »

Passei um link, mas é de um projeto particular, só está disponível pra mim.
Removi as mensagens referentes a ele.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Ativar .log de erro

Mensagem por Softwhouse »

Vc é moderador ?
Fernando
faustinofaria
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 29 Mar 2011 21:15
Localização: Itápolis / SP

Ativar .log de erro

Mensagem 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!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ativar .log de erro

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Ativar .log de erro

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Responder