我用 tstringlist 做了一个非常简单的日志。我将其写入文件:
pLog.SaveToFile(FileName);
某处存在错误,我的计算机已关闭。之后,我找不到我的日志文件。该文件可能以异步模式保存。有没有办法在执行之前等待写入?
谢谢,阿尔贝托
我用 tstringlist 做了一个非常简单的日志。我将其写入文件:
pLog.SaveToFile(FileName);
某处存在错误,我的计算机已关闭。之后,我找不到我的日志文件。该文件可能以异步模式保存。有没有办法在执行之前等待写入?
谢谢,阿尔贝托
如果savetofile调用在程序结束时,程序异常终止,那么这个调用可能不会执行。我使用一种日志记录机制,每次调用日志都会打开日志文件,写入日志文本和时间,刷新然后关闭日志文件。这样,即使程序异常终止,也可以保证将日志文本写入文件。
这是代码:
procedure TMainForm.Log (const s: string);
var
f: textfile;
begin
assignfile (f, logfilename);
{$I-} // yes, I know: modern programming style requires a try/except block
append (f);
if ioresult <> 0 then rewrite (f);
{$I+}
writeln (f, datetostr (now), ' ', timetostr (now), ' ', s);
flush (f);
closefile (f);
end;
TStringList.SaveToFile
同步运行。
问题的最明显原因是:
TStringList.SaveToFile
。