Delphi輸出日誌的方法

來源:互聯網
上載者:User

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;

程式運行後,可以通過控制台 – 管理工具 – 事件檢視器來查看

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.