Cualquier luz para TEventLogger?
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?
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 *