diff --git a/src/engine/e_log.pas b/src/engine/e_log.pas
index b877db33511abbfde8f1b28c08dec9acac867130..1a2499060453086ace60781d3c3b85e7fabd995d 100644 (file)
--- a/src/engine/e_log.pas
+++ b/src/engine/e_log.pas
+{$MODE DELPHI}
+{$R-}
unit e_log;
interface
WriteTime: Boolean = True);
function DecodeIPV4(ip: LongWord): string;
+var
+ e_WriteToStdOut: Boolean = False;
+
implementation
var
var
LogFile: TextFile;
Prefix: ShortString = '';
+ OutStr: String;
begin
if FileName = '' then Exit;
Assign(LogFile, FileName);
- if FileExists(FileName) then
- Append(LogFile)
- else
- Rewrite(LogFile);
- if FirstRecord then
- begin
- Writeln(LogFile, '--- Log started at '+TimeToStr(Time)+' ---');
- FirstRecord := False;
- end;
- case RecordCategory of
- MSG_FATALERROR: Prefix := '!!!';
- MSG_WARNING: Prefix := '! ';
- MSG_NOTIFY: Prefix := '***';
+ try
+ if FileExists(FileName) then
+ Append(LogFile)
+ else
+ Rewrite(LogFile);
+ try
+ if FirstRecord then
+ begin
+ Writeln(LogFile, '--- Log started at '+TimeToStr(Time)+' ---');
+ FirstRecord := False;
+ end;
+ case RecordCategory of
+ MSG_FATALERROR: Prefix := '!!!';
+ MSG_WARNING: Prefix := '! ';
+ MSG_NOTIFY: Prefix := '***';
+ end;
+ if WriteTime then
+ OutStr := '['+TimeToStr(Time)+'] '+Prefix+' '+TextLine
+ else
+ OutStr := Prefix+' '+TextLine;
+ Writeln(LogFile, OutStr);
+ if e_WriteToStdOut then
+ Writeln(OutStr);
+ finally
+ Close(LogFile);
+ end;
+ except // sorry
end;
- if WriteTime then
- Writeln(LogFile, '['+TimeToStr(Time)+'] '+Prefix+' '+TextLine)
- else
- Writeln(LogFile, Prefix+' '+TextLine);
- Close(LogFile);
end;
procedure e_InitLog(fFileName: String; fWriteMode: TWriteMode);
begin
FileName := fFileName;
if fWriteMode = WM_NEWFILE then
- if FileExists(FileName) then
- DeleteFile(FileName);
+ begin
+ try
+ if FileExists(FileName) then DeleteFile(FileName);
+ except // sorry
+ end;
+ end;
FirstRecord := True;
end;