diff --git a/src/engine/e_log.pas b/src/engine/e_log.pas
index 523c27f068de6ab6392058a12714edf8bda543ed..aba6e0d99d3f794b3de7f85dbf69d99de4c32a57 100644 (file)
--- a/src/engine/e_log.pas
+++ b/src/engine/e_log.pas
procedure e_InitLog (fFileName: String; fWriteMode: TWriteMode);
procedure e_DeinitLog ();
+procedure e_SetSafeSlowLog (slowAndSafe: Boolean);
+
procedure e_WriteLog (TextLine: String; RecordCategory: TRecordCategory; WriteTime: Boolean=True);
function DecodeIPV4 (ip: LongWord): string;
xlogPrefix: AnsiString;
xlogLastWasEOL: Boolean = false;
xlogWantSpace: Boolean = false;
+ xlogSlowAndSafe: Boolean = false;
+
+
+procedure e_SetSafeSlowLog (slowAndSafe: Boolean);
+begin
+ xlogSlowAndSafe := slowAndSafe;
+ if xlogSlowAndSafe and xlogFileOpened then
+ begin
+ CloseFile(xlogFile);
+ xlogFileOpened := false;
+ end;
+end;
+
procedure logwriter (constref buf; len: SizeUInt);
var
formatstrf(fmt, args, logwriter);
if not xlogLastWasEOL then writeln(xlogFile, '') else writeln(xlogFile, xlogPrefix);
+ if xlogSlowAndSafe and xlogFileOpened then
+ begin
+ CloseFile(xlogFile);
+ xlogFileOpened := false;
+ end;
+
//if fopened then CloseFile(xlogFile);
end;