Pular para o conteúdo

Criando log de erro para seus programas Kylix

Dica publicada em Kylix / Avançado
Anderson de Assis de Souza anderson_souza
Hits: 7.677 Categoria: Kylix Subcategoria: Avançado
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Criando log de erro para seus programas Kylix

Com este código você pode implementar seus programas em Kylix com um único tratamento de erros.

Ao acontecer um erro não tratado, será chamado o procedimento EventoErro, que irá tratá-lo de forma genérica, exibindo a mensagem: 'ERRO: Ocorreu um erro indeterminado! Este erro pode ser fatal.' e depois finaliza a aplicação, gravando em log o erro completo com sua descrição.

Claro que modificando o procedimento você pode mudar o tratamento, não finalizando a aplicação, ou mudando a mensagem.

Bom, vamos começar com a dica, vou chamar o form principal de sua aplicação Kylix como Form1.

No form principal da sua aplicação Kylix localize as linhas:

private
    { Private declarations }
  public
    { Public declarations }
end;

Modifique para:

  private
    { Private declarations }
    Caminho : String;  // Inclusão.
    NomeDoUsuario : String;  // Inclusão.
  public
    { Public declarations }
    Procedure EventoErro(Sender: TObject; E: Exception);  // Inclusão.
  end;

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • NomeDoUsuario: É uma variável de sugestão para que você trate melhor o seu log, você pode inicializa-la em alguma parte do s eu código com o nome do usuário que está usando o sistema, ou deixar vazia (digo, NomeDoUsuario := '';).
  • Caminho: É uma variável, que contém o path para gravação do seu log de eventos de erro, não esquecendo dos direitos de gravação. Exemplo: Caminho := '/var/log/diretoriolog/';

Depois inclua o procedimento abaixo no seu código:

procedure TForm1.EventoErro(Sender: TObject; E: Exception);
var
F : TextFile;
S : String;
I : Integer;
begin
{$I-}
Try
  I := 0;

  S := '';
  While (E.Message[I] <> Chr(13)) and (I < Length(E.Message)) do
  Begin
    I := (I +1);
    S := (S + E.Message[I]);
  End;{do}
  S := (DateTimeToStr(Now)+' '+NomeDoUsuario+': '+S);
  AssignFile(F,(Caminho+'errolog.txt'));
  If FileExists((Caminho+'errolog.txt')) Then
    Append(F){}
  Else
    Rewrite(F);{if}
  Writeln(F,S);
  CloseFile(F);
  ShowMessage('ERRO: Ocorreu um erro indeterminado! Este erro pode ser fatal.');
  Application.Terminate;
  Abort;
Except
  Application.Terminate;
  Abort;
End;{try}
{$I+}
end;{procedure}

Inclua a linha abaixo no formulário principal de sua aplicação, coloque-a no evento de Create ou de FormShow:

Application.OnException := EventoErro;


Assim todos os eventos de erro do seu programa serão gravados no log de erro.

Se você tratar uma parte do seu código com try except end; o procedimento EventoErro será ignorado, e o seu procedimento desta parte do código, em específico, será utilizado.

OK.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Firebird - Backup de banco de dados

Pesquisando arquivos pelo seu conteúdo em modo texto

Programação Kylix: Informações do menu na barra de status

Instalando o Macromedia Flash no Linux

Problemas ao compilar o MPlayer no Slackware Linux 12.1

Programação Kylix: Informações do menu na barra de status

Construindo gráfico com Canvas

Tocar a tecla TAB pelo ENTER no Kylix

ABNT 2 e Kylix

Kylix 3 - SuSe 9.1 com kernel 2.6

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.