问题如下:
在以下程序中
***********************************************************************************************
procedure TForm1.WriteLog(sLog: String);
Var
sDate, sDirName, sInfo : String;
sFName : OleVariant;
fLog : TextFile;
begin
if w_log='true' then//如果写入标识为'true',则写入log中
begin
sDate := FormatDatetime('YYYYMMDD', Now());
Try
sDirName := 'log\';
If Not DirectoryExists(sDirName) Then CreateDir(sDirName);
//sFName := '..\' + sDate + '.Log';
sFName := sDirName+sDate + '.Log';
AssignFile(fLog, sFName);
if Not FileExists(sFName) then ReWrite(fLog)
else Append(fLog);
sInfo := FormatDatetime('HH:NN:SS:ZZZ', Now()) + ':' + sLog;
WriteLn(fLog, sInfo);
sendpack(sLog);
CloseFile(fLog);
Except
End;
end;end;
***********************************************************************************************
在实际使用时,不知道是写入文件的问题,还是其他问题,总是会有1秒左右的延迟,是否以上代码有问题呢?
在以下程序中
***********************************************************************************************
procedure TForm1.WriteLog(sLog: String);
Var
sDate, sDirName, sInfo : String;
sFName : OleVariant;
fLog : TextFile;
begin
if w_log='true' then//如果写入标识为'true',则写入log中
begin
sDate := FormatDatetime('YYYYMMDD', Now());
Try
sDirName := 'log\';
If Not DirectoryExists(sDirName) Then CreateDir(sDirName);
//sFName := '..\' + sDate + '.Log';
sFName := sDirName+sDate + '.Log';
AssignFile(fLog, sFName);
if Not FileExists(sFName) then ReWrite(fLog)
else Append(fLog);
sInfo := FormatDatetime('HH:NN:SS:ZZZ', Now()) + ':' + sLog;
WriteLn(fLog, sInfo);
sendpack(sLog);
CloseFile(fLog);
Except
End;
end;end;
***********************************************************************************************
在实际使用时,不知道是写入文件的问题,还是其他问题,总是会有1秒左右的延迟,是否以上代码有问题呢?
下面加一句Flush(fLog)试试
或者用TFileStream来写,日志中间写入#10#13换行
太大不但会有延时,还会引起I/O错误(致命错误!)造成程序崩溃的。要小心!
楼主可以只记录出错信息啊。
日常操作等日志信息,最好用DATABASE来完成。
太大不但会有延时,还会引起I/O错误(致命错误!)造成程序崩溃的。要小心!
楼主可以只记录出错信息啊。
日常操作等日志信息,最好用DATABASE来完成。