Самым простым решением для вашего случая, вероятно, является круговой журнал, который имеет фиксированный размер.
Если вы работаете в Linux, вы можете попробовать модуль ядра emlog
Модуль ядра emlog реализует простой символьный драйвер устройства. Драйвер действует как именованный канал с конечным круговым буфером. Размер буфера легко настраивается. Когда в буфер записывается больше данных, самые старые данные отбрасываются. Процесс, который читает с устройства emlog, сначала прочтет существующий буфер, а затем увидит новый текст в том виде, в котором он написан, аналогично мониторингу файла журнала с использованием tail -f. (Неблокирующее чтение также поддерживается, если процессу необходимо получить текущее содержимое журнала без блокировки, чтобы дождаться новых данных.)
О системах BSD см. CLOG(8)