libflog

libflog – простая, портируемая и гибко настраиваемая библиотека для ведения протокола событий в виде текстовых файлов, пригодная для использования в программах на C и C++. Библиотека позволяет определить неограниченное количество потоков протокола с отдельными настройками префикса и отметки времени. Каждый поток может быть направлен в отдельный файл или в стандартный консольный вывод (stdout, stderr). При наличии в системе динамической версии zlib, возможно прозрачное компрессирование файлов протокола путём добавления к именам суффикса ".gz".

Запись в протокол осуществляется так же легко, как вызов функции printf. Библиотека самостоятельно предотвращает дублирующиеся записи в каждом файле, сопровождая первый экземпляр информацией о количестве повторов. Библиотека пригодна для использования в многопоточнх приложениях и самостоятельно заботится о совместном доступе из нескольких потоков (в среде Windows для этого используются стандартные функции, в POSIX-системах – pthreads).

Библиотека разрабатывается как попытка снизить количество реплицируемого кода и централизовать исправление возможных неполадок в нескольких проектах, над которыми я работаю. Если кому-либо ещё библиотека придётся по нраву, считайте своим правом её использовать. В рамках лицензии LGPL.

Дистрибутивы