Pergunta

Eu quero ver sobre o registro de eventos de um aplicativo Delphi 5 para o registo do Windows, e outro post aqui vejo que eu posso usar a classe TEventLogger para fazer isso.

No entanto, não consigo encontrar qualquer documentação sobre a sintaxe do procedimento TEventLogger.LogMessage, então eu não sei o que todos os parâmetros dizer, como usá-los, ou mesmo o que estão disponíveis valores possíveis.

Eu tentei olhar ao redor, e tudo o que encontro é uma página de Embarcadero afirmando que a função existe, mas nada em sua sintaxe, e MSDN não ajuda como eu só pode encontrar a versão BizTalk que não me faz bem.

Alguém tem uma página de ajuda ou informações sobre este que pode lançar alguma luz sobre o que eu posso fazer com ele?

Foi útil?

Solução

TEventLogger é uma classe auxiliar interno para TService.

Você log mensagem usando a função TService.LogMessage(), não pondo em TEventLogger diretamente. Os parâmetros de LogMessage() corresponder diretamente com os parâmetros da API Win32 ReportEvent() função.

Procure na documentação da API Win32 para mais detalhes.

Se você não está escrevendo um aplicativo de serviço, então você precisa chamar a API Win32 RegisterEventSource() e funções ReportEvent() diretamente em vez.

Outras dicas

Um exemplo simples de uma escrita aplicativo no log de eventos:

procedure WriteToLog(Msg:string; EventId: Word = 0);
var
  h: THandle;
begin
  h := RegisterEventSource(nil, PChar(Application.ExeName));
  if h > 0 then
  try
    ReportEvent(h, 0, 0, EventId, nil, 1, 0, @Msg, nil);
  finally
    DeregisterEventSource(h);
  end;
end;

procedure TForm7.Button1Click(Sender: TObject);
begin
  WriteToLog('* Blah Blah Blah *');
end;

Mas cuidado que não registrar a identificação do evento com o sistema dará esse tipo de confuso Descrição:

A descrição para Event ID (0) na origem (C: \ Documents and Settings \ fgaillard \ \ Meus Documentos RAD Studio \ Projects \ Project1.exe) não pode ser encontrado. O computador local pode não ter o necessário ficheiros de informação de registro ou DLL de mensagem para exibir mensagens de um computador remoto. Você pode ser capaz de usar o / auxsource = sinalizador para recuperar esta descrição; consulte a Ajuda e Suporte para obter mais detalhes. o informações a seguir são parte do evento:. * Blah Blah Blah *

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top