TEventLogger有什么亮点吗?

Tom*_*m A 5 delphi helpfile event-log

我想看看将事件从Delphi 5应用程序记录到Windows日志,从这里我看到我可以使用TEventLogger该类来执行此操作.

但是,我找不到有关该TEventLogger.LogMessage过程语法的任何文档,因此我不知道所有参数的含义,如何使用它们,甚至可能的值.

我试着环顾四周,所有我觉得是从Embarcadero公司以说明该功能存在,但没有关于它的语法和MSDN是没有帮助,因为我只能找到的BizTalk版本,确实我没有好.

有没有人有这方面的帮助页面或信息可能会对我能用它做些什么有所启发?

Rem*_*eau 8

TEventLogger是一个内部帮助类TService.

您使用该TService.LogMessage()功能记录消息,而不是TEventLogger直接调用.参数LogMessage()直接与Win32 API ReportEvent()函数的参数匹配.

查看Win32 API文档以获取详细信息.

如果您没有编写服务应用程序,则需要直接调用Win32 API RegisterEventSource()ReportEvent()函数.


Fra*_*ois 7

应用程序写入事件日志的简单示例:

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;
Run Code Online (Sandbox Code Playgroud)

但请注意,不在系统中注册EventID会产生这种混淆的描述:

无法找到源(C:\ Documents and Settings\fgaillard\My Documents\RAD Studio\Projects\Project1.exe)中的事件ID(0)的说明.本地计算机可能没有必要的注册表信息或消息DLL文件来显示来自远程计算机的消息.您可以使用/ AUXSOURCE =标志来检索此描述; 请参阅帮助和支持以获取详细信 以下信息是活动的一部分:*Blah Blah Blah*.