Запись в лог-файл через стандартный вывод

Материал из DRKB

Перенаправление стандартного вывода в заданный файл, удобно для записи логов при помощи WriteLn()

initialization

  if not System.IsConsole then
  begin
    {$PUSH}
    {$IOCHECKS OFF}
    AssignFile(System.Output, 'log.txt');
    ReWrite(System.Output);
    {$POP}
 
    if IOResult() <> 0 then
      System.Output := System.StdOut;
  end;

finalization
 
  CloseFile(System.Output);

end.


Source: https://forum.lazarus.freepascal.org/index.php/topic,61765.0.html