Pregunta

Quiero ver acerca del registro de eventos desde una aplicación de Delphi 5 en el registro de Windows, y desde otro post aquí veo que puedo utilizar la clase TEventLogger para hacer esto.

Sin embargo, no puedo encontrar ninguna documentación sobre la sintaxis del procedimiento TEventLogger.LogMessage, así que no sé lo que significan todos los parámetros, cómo usarlos, o incluso lo que se dispone de valores posibles.

He intentado buscar en todo, y todo lo que encontramos es una página de Embarcadero que indica que la función existe, pero nada sobre su sintaxis, y MSDN no ayuda, ya que sólo puedo encontrar la versión de BizTalk, que no me hace bien.

¿Alguien tiene una página de ayuda o información de esta que podría arrojar alguna luz sobre lo que puedo hacer con ella?

¿Fue útil?

Solución

TEventLogger es una clase de ayuda interna para TService.

registro de mensajes utilizando la función TService.LogMessage(), no poniendo en TEventLogger directamente. Los parámetros de LogMessage() coinciden directamente con los parámetros de la API Win32 función ReportEvent() .

Busque en la documentación de la API de Win32 para más detalles.

Si usted no está escribiendo una aplicación de servicio, a continuación, es necesario llamar a la API de Win32 RegisterEventSource() y funciones ReportEvent() directamente en su lugar.

Otros consejos

Un simple ejemplo de una aplicación escribir en el registro de sucesos:

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;

Sin embargo, ten en cuenta que no registrar el EventID con el sistema dará este tipo de confusa Descripción:

  

La descripción identificador de suceso (0) en el origen (C: \ Documents and   Settings \ fgaillard \ Mis documentos \ RAD Studio \ Projects \ Project1.exe)   no pudo ser encontrado. El equipo local no tenga la necesaria   información o DLL mensaje de registro de archivos para mostrar los mensajes de una   computadora remota. Es posible que pueda utilizar el / AUXSOURCE = a   recuperar esta descripción; consulte Ayuda y soporte para más detalles. los   siguiente información es parte del evento:. * soso *

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top