现在的位置: 首页 > 综合 > 正文

Delphi输出日志的方法

2013年08月14日 ⁄ 综合 ⁄ 共 1029字 ⁄ 字号 评论关闭

1、使用OutputDebugString

procedure TForm1.BtnDebugClick(Sender: TObject);
begin
  //这里调用OutputDebugString发送调试信息到调试器。
  //在Delphi里面,用View - Debug Windows - Event Log 来查看。
   OutputDebugString(PChar('测试OutputDebugString'));
end;

2、发送日志到操作系统日志记录。
这个基本上使用在Release版本中,记录一些重要的信息,帮助用户反馈信息给开发人员。

 

procedure TForm1.Button2Click(Sender: TObject);
var
  EvtSrcHand: THandle;
  EvtMsg: String;
  p:Pointer;
  i:integer;
  size:integer;
  q:^byte;
begin
  //注册事件源,随便起了个名字。这个名字就是下图事件列表的’来源’一列
  //然后判断是否成功。
  //注意后面要注销
  EvtSrcHand := RegisterEventSource(nil, '测试程序');
  if EvtSrcHand = 0 then
  begin
    ShowMessage('注册事件源失败!');
    Exit;
  end;

  //这里记录一个字符串
  //这个字符串显示在下面第二个图选中的位置。
  EvtMsg := '记录字符串';
  ReportEvent(EvtSrcHand,EVENTLOG_INFORMATION_TYPE,0, 0, nil, 1, 0, @EvtMsg, nil);
 
  //这里记录一块内存,size大小
  size:=32;
  //申请
  GetMem(p, size);
  q := p;

  //填充这块内存
  for i := 0 to size - 1 do
  begin
    q^ := i;
    inc(q);
  end;

  //这里记录内存的内容。大小为size, 首字节的指针p
  //同样也有说明信息msg
  EvtMsg := '记录某块内存';
  ReportEvent(EvtSrcHand,EVENTLOG_INFORMATION_TYPE , 0, 0, nil, 1, size, @EvtMsg, p);
  FreeMem(p);
  //注销事件源
  DeregisterEventSource(EvtSrcHand);
end;

程序运行后,可以通过控制面板 – 管理工具 – 事件查看器来查看

抱歉!评论已关闭.