返回首页

Delphi输出日志的方法

时间:2013-03-27 00:39来源:知行网www.zhixing123.cn 编辑:麦田守望者

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;

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

------分隔线----------------------------
标签(Tag):delphi
------分隔线----------------------------
推荐内容
猜你感兴趣