zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Delphi输出日志的方法

2023-09-27 14:24:59 时间
1、使用OutputDebugString procedure TForm1.BtnDebugClick(Sender: TObject);begin  //这里调用OutputDebugString发送调试信息到调试器。  //在Delphi里面,用View - Debug Windows - Event Log 来查看。   OutputDebugString(PChar( 测试Outp

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;

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


消息处理程序是一个函数,用于打印调试信息、警告信息、严重错误和致命的错误的消息。Qt库(debug模式)包含成百上千的警告信息打印,当发生内部错误时(通常是无效的函数参数)。Qt在release模式下构建还包含这些警告,除非在编译时设置QT_NO_WARNING_OUTPUT和/或QT_NO_DEBUG