Вы можете усечь файл журнала. Один из способов сделать это - набрать:
>someoutputfile
в командной строке оболочки. Это редирект без вывода, и он сотрет все содержимое файла.
Хитрость в том, что любая программа, записывающая в этот файл, продолжит запись в файл в его последней позиции вывода. Таким образом, файл сразу получит «дыру» от 0 до X байт, где X - выходная позиция.
В большинстве файловых систем Linux эти дыры приводят к разреженным файлам, которые фактически не используют пространство в дыре. Таким образом, файл может содержать много гигабайт нулей в начале, но использовать только 500 КБ на диске.
Другой способ сделать быструю запись в журнал - сопоставить файл памяти на диске фиксированного размера: например, 16 МБ. Затем протоколирование записывает в указатель памяти, который оборачивается, когда достигает предела размера. Затем он продолжает писать в начале файла. Это хорошая идея иметь какой-то маркер позиции записи. Я использую <====>
, например. Я считаю этот метод невероятно быстрым и отлично подходит для ведения журнала отладки.