Delphi中写日志文件log总结


思想:我们在写日志文件的时候习惯将所有的日志文件全部Add到一个List链表里面,然后用定时器定时从List链表中取数据写文件。

所以我使用TStringList,将所以日志Add到TStringList里面,然后用定时器从TStringList里面取数据写日志。

procedure Tfoffertool.OnReadListTimer(Sender: TObject);
var
  sysDir : string;
  strMsg : string;
  logfile: string;

begin
  //创建日志文件
  sysDir:=extractfilepath(application.ExeName);
  logfile:=formatdatetime('yyyyy-mm-dd', Now()) + '.log'; // 在字符串前加上日期
  if not directoryexists(sysdir) then
    createdir(sysdir);
  AssignFile(mylog,logfile);
  if fileexists(sysDir+logfile) then
  append(mylog)
  else
  rewrite(mylog);
  while ((mylogList.Count) > 0) do
  begin
    strMsg := mylogList.Text;              //从List里面读取数据这个是读取块

    //好像也可以这样每次读取一行:

    //strMsg := mylogList[0];

    //mylogList.Delete(0);
    mmolog.Text := mmolog.Text + strMsg;    //将数据显示在TMemo控件中
    mylogList.Clear;
    Writeln(mylog,strMsg);                //写日志里
  end;
  CloseFile(mylog);                        //关闭文件流
end;

本文永久更新链接地址:

相关内容