X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fengine%2Fe_log.pas;h=1a2499060453086ace60781d3c3b85e7fabd995d;hb=ac201b02f10ef558087d50f6b03b4519ab567558;hp=b8a185020749e2743f246793b402b78be25bddc5;hpb=88ce644db1b40111bdb380f4357fa59bdb5173be;p=d2df-sdl.git diff --git a/src/engine/e_log.pas b/src/engine/e_log.pas index b8a1850..1a24990 100644 --- a/src/engine/e_log.pas +++ b/src/engine/e_log.pas @@ -1,3 +1,5 @@ +{$MODE DELPHI} +{$R-} unit e_log; interface @@ -14,6 +16,9 @@ procedure e_WriteLog(TextLine: String; RecordCategory: TRecordCategory; WriteTime: Boolean = True); function DecodeIPV4(ip: LongWord): string; +var + e_WriteToStdOut: Boolean = False; + implementation var @@ -31,38 +36,52 @@ procedure e_WriteLog(TextLine: String; RecordCategory: TRecordCategory; WriteTime: Boolean = True); var LogFile: TextFile; - Prefix: ShortString; + 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;