Конференция "FreePascal" » Перехват Write/Writeln [linux]
 
  • Дмитрий С © (02.06.13 13:06) [0]
    Хочу сделать логирование путем перехвата вызовов Write/Writeln.
    Подскажите в какую сторону копать?
  • Rouse_ © (02.06.13 15:17) [1]
    Они используют функцию WriteFile.
    Перехватывай ее и всего делов.
  • Дмитрий С © (03.06.13 00:52) [2]
    Попробую поразбираться. По идее можно подменить stdout или как он под линуксом называется.
  • Thaddy © (28.06.13 14:37) [3]
    You can override Textrec.openfunc, inoutfunc flushfunc and closefunc.
    writeln uses a global instance of Textrec.
    If you override these functions, you can make it write to file instead of stdout.
    It is actually assigning your own function to the function pointer.
  • Наиль © (30.06.13 19:23) [4]
  • Наиль © (01.07.13 05:24) [5]
    На самом деле всё намного проще. Если просто нужно перенаправить вывод с консоли в файл, то достаточно переопределить значение глобальной переменной output.

    AssignFile(output, 'c:\log.txt')';  
    Rewrite(output);
    Writeln('
    Логирование в файл c:\log.txt ');

 
Конференция "FreePascal" » Перехват Write/Writeln [linux]
Есть новые Нет новых   [118461   +17][b:0][p:0.001]