灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3003回复:0

Delphi输出日志的方法

楼主#
更多 发布于:2012-09-08 13:04

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;
程序运行后,可以通过控制面板 – 管理工具 – 事件查看器来查看


喜欢0 评分0
游客

返回顶部