Frage

Ich möchte über Protokollieren von Ereignissen aus einer Delphi-5-Anwendung in dem Windows-Protokoll, um zu sehen, und aus einem anderen Beitrag hier ich sehe, dass ich die TEventLogger Klasse verwenden kann, dies zu tun.

Allerdings kann ich keine Dokumentation über die Syntax des TEventLogger.LogMessage Verfahren finden, so dass ich weiß nicht, was alle Parameter bedeuten, wie sie verwendet werden, oder auch was mögliche Werte stehen zur Verfügung.

Ich habe versucht, schaut sich um, und alles, was ich finde, ist eine Seite von Embarcadero die besagt, dass die Funktion existiert, aber nichts auf seine Syntax und MSDN ist keine Hilfe, da ich nur die BizTalk-Version finden kann, die mir nicht gut tut.

Hat jemand eine Hilfeseite oder Informationen zu diesem Thema, die etwas Licht könnte auf dem, was ich damit machen kann?

War es hilfreich?

Lösung

TEventLogger ist eine interne Hilfsklasse für TService.

Sie melden Nachricht die TService.LogMessage() Funktion verwenden, nicht direkt in TEventLogger aufrufen. Die Parameter von LogMessage() direkt mit den Parametern des Win32-API ReportEvent() Funktion.

Suchen Sie in der Win32-API-Dokumentation.

Wenn Sie keinen Service-Anwendung zu schreiben, dann müssen Sie die Win32-API aufrufen RegisterEventSource() und ReportEvent() Funktionen direkt statt.

Andere Tipps

Ein einfaches Beispiel für eine Anwendung in das Ereignisprotokoll zu schreiben:

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;

Aber Vorsicht, dass nicht die EreignisID mit dem System Registrierung wird diese Art von verwirrter Beschreibung geben:

  

Die Beschreibung von Ereigniskennung (0) in (C: \ Dokumente und   Einstellungen \ fgaillard \ Eigene Dateien RAD Studio \ Projects \ Project1.exe \)   kann nicht gefunden werden. Der lokale Computer verfügt nicht über die notwendigen   Registrierungsinformationen oder DLL-Meldungsdateien Nachrichten von einem anzuzeigen   entfernter Computer. Sie können das / AUXSOURCE = Flag zu verwenden, der Lage sein,   Abrufen dieser Beschreibung; Hilfe- und Support für weitere Einzelheiten. Das   Folgende Informationen sind Teil des Ereignisses:. * Blah Blah Blah *

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top