写日志函数

procedure TfrmShowScore.writeInfoLog(str:string);
var filev:TextFile; //jack for test
  sfile:string;
begin
  str := FormatDateTime('yyyyMMddhhnnss',now)+'Log:'+ str;
  sfile := 'c:\jackLog.txt';
  if FileExists(sfile) then
  begin
    AssignFile(filev,sfile);
    Append(filev);
    writeln(filev,str);
  end
  else
  begin
    AssignFile(filev,sfile);
    Rewrite(filev);
    Writeln(filev,str);
  end;
  CloseFile(filev);
end;

//考点系统写日志方法:
procedure TLogService.WriteLog(logtype: string; errSource: string; errDescribe: string);
var
  strTemp: AnsiString;
begin
  if Assigned(fileFs)=False then raise Exception.Create('Not SetLogFileName');

    lock();//加锁,防止多线程同时访问造成冲突。
    try
      strTemp:= Format(CN_Log_Format,
                [formatdateTime('yyyy-mm-dd hh:nn:ss.zzz',Now),logtype, errSource,errDescribe]);

      fileFs.Position := fileFs.Size;
      fileFs.Write(Pointer(strTemp)^,Length(strTemp));
      //fileFs.WriteBuffer(Pointer(strTemp), Length(strTemp));
      unlock();//解锁
    except
      unlock();//解锁
    end;
end;

posted on 2018-09-14 10:12  liuweijie  阅读(658)  评论(0)    收藏  举报