Перейти к содержимому

Написания библиотеки для логирования PHP-сценариев

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

В сети были найдены следующие библиотеки: Monolog(https://github.com/Seldaek/monolog) и KLogger(https://github.com/katzgrau/KLogger).

Но при эксплуатации этих библиотек я столкнулся с проблемами.

В процессе работы сценария создавался большой файл, во время выполнения скрипта, я выполнял review этого файла и затем удалял его за ненадобностью, после этого ведение логов прекращалось.

Лог файл не разбивался на мелкие файлы, анализировать большой файл собранный за несколько дней было неудобно.

В результате исследования исходных кодов библиотек было выявлено, что библиотеки используют один экземпляр дескриптора файла, поэтому когда происходит удаление файла, библиотеки не могут захватить новый дескриптор.

Решением этой проблемы было написание собственной библиотеки ALogger (https://github.com/kozintsev/ALogger), в основе котрой лежит структура проекта KLogger.

Библиотека позволяет удалять файлы логов, во время выполнения сценария и разбивать файл, на фрагменты, размер фрагмента можно задать опционально.

Добавить комментарий