debuger
Code by Ireneusz A.user_6919294
pascal
a year ago
1.3 kB
9
Indexable
// Cześć Daria, rozważ użycie TStreamWriter zamiast procedur
// - AssignFile, Append, Rewrite (nowocześniejsze podejście)
procedure DebugLog(const Msg: string; const Args: array of const); overload;
var
StreamWriter: TStreamWriter;
LogPath: string;
LogLine: string;
begin
LogPath := ExtractFilePath(ParamStr(0)) + 'debug.log';
try
LogLine := Format('%s - %s', [FormatDateTime('yyyy-mm-dd hh:nn:ss', Now), Format(Msg, Args)]);
StreamWriter := TStreamWriter.Create(LogPath, True); // True oznacza dołączanie do istniejącego pliku
try
StreamWriter.WriteLine(LogLine);
finally
StreamWriter.Free;
end;
except
on E: Exception do
ShowMessage('Failed to write to the log: ' + E.Message);
end;
end;
procedure DebugLog(const Msg: string); overload;
begin
DebugLog(Msg, []);
end;
{ Podsumowanie:
Kluczowe zmiany:
- Zastąpienie TextFile i metod AssignFile, Append, Rewrite klasą TStreamWriter
- Użycie Create z parametrem True, który oznacza dołączanie do istniejącego pliku
- Metoda WriteLine zastępuje WriteLn
- Jawne zwolnienie zasobu poprzez Free w bloku finally
Zalety tego podejścia:
- Bardziej nowoczesne
- Automatyczne zarządzanie buforem
- Prostsza składnia
- Bezpieczniejsze zarządzanie zasobami
}Editor is loading...
Leave a Comment