Delphi输出日志的方法

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;

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

时间: 2024-07-30 19:59:37

Delphi输出日志的方法的相关文章

Python同时向控制台和文件输出日志logging的方法

  本文实例讲述了Python同时向控制台和文件输出日志logging的方法.分享给大家供大家参考.具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG, forma

aop-springAOP aspactj拦截自定义注解 输出日志,同一个service内方法调用,拦截不到

问题描述 springAOP aspactj拦截自定义注解 输出日志,同一个service内方法调用,拦截不到 切面类如图: service impl(实现类)引用示例: ,我就纳闷了,为什么同一个类中的方法调用,被调用的方法配置业务描述注解拦截不到呀!跪求大神开示! 解决方案 同一个类中的是拦截不到的,因为同一个类中的方法调用没用代理. 解决方案二: 第一次遇到这问题,能不能给个建议解决这问题呀!

Log4j按级别输出日志到不同文件的实现方法_java

如下所示: log4j.rootLogger=info,stdout,info,debug,warn,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%

asp写的日志处理方法

一.实现方法       一个书写日志的函数,提供几个参数,用户程序调用这个函数就可以实现日志的记录.日志记录到xml文件中,日志文件按日期生成,每天新建立一个日志文件,文件名为:yyyy_mm_dd.xml,分别用了年月日.而查看日志也日常简单,用户想看哪天的日志,只要直接调用该xml文件即可.因为xml文件已经默认了一个xsl文件来格式化输出. 二.书写日志的方法 '记录日志的程序 '作者:塞北的雪 '日期:2004.11.20 'username :用户信息(标示进行该操作的人员) 'op

ASP写的日志处理方法 (XML)

xml 一.实现方法 一个书写日志的函数,提供几个参数,用户程序调用这个函数就可以实现日志的记录.日志记录到xml文件中,日志文件按日期生成,每天新建立一个日志文件,文件名为:yyyy_mm_dd.xml,分别用了年月日.而查看日志也日常简单,用户想看哪天的日志,只要直接调用该xml文件即可.因为xml文件已经默认了一个xsl文件来格式化输出. 二.书写日志的方法 '记录日志的程序'作者:塞北的雪'日期:2004.11.20'username :用户信息(标示进行该操作的人员)'operate 

日志分析方法概述

日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其实并没有精确的定义,可能包括但不限于各种前端Web服务器--apache.lighttpd.tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志. 在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志: 211.87.152.44 – - [

.Net下几种日志管理方法

.Net下几种日志管理方法 日志是应用程序中不可缺少的一部份,不仅可以记录应用程序的运行状态,还可以记录一些BUG,便于应用程序的更新与修改.在.Net有好几种方法可以对日志进行管理.1.数据库日志.2.文本日志.3.系统事件日志. 首先,对于数据库日志而言,它的使用简单而且方便.这里就不做太多的讨论,相信写过与数据相关的项目的人都会用数据来记录一些日志.然而它唯一不好的就是:必须先保证你的数据库链接是正确无误的.然而这一保证不是必然的,所以这里我再讨论一下其它的两种情况,文本日志及系统事件日志

Python记录详细调用堆栈日志的方法

  本文实例讲述了Python记录详细调用堆栈日志的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import sys import os def detailtrace(info): retStr = "" curindex=0 f = sys._getframe() f = f.f_back # first frame is detailtrace, ignore

MyBatis启动时控制台无限输出日志的原因及解决办法_java

你是否遇到过下面的情况,控制台无限的输出下面的日志: Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter. Logging initialized using 'class org.apache.ibatis.lo