Boost.Log: настраиваемое действие при ротации файлов - PullRequest
0 голосов
/ 05 ноября 2018

Наше приложение использует Boost.Log (1.63) и работает довольно хорошо. Мы используем функцию ротации / архивирования и имена файлов с увеличивающимися числами.

Теперь мы бы хотели посмотреть файлы журналов ошибок.

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

Насколько я понимаю, Boost.Log не может быть настроен на то, что у реального файла журнала всегда есть фиксированное имя файла, и только у архивных файлов есть суффиксы. Это правильно?

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

1 Ответ

0 голосов
/ 06 ноября 2018

Насколько я понимаю, Boost.Log не может быть настроен на то, что у реального файла журнала всегда есть фиксированное имя файла, а суффиксы есть только у заархивированных файлов. Это правильно?

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

Есть ли возможность добавить настраиваемое действие для каждого события вращения?

Есть файлы, открывающие и закрывающие обработчики . Эти обратные вызовы получают поток файлов, а не имя файла. Но вы можете получить текущее имя файла из бэкэнда приемника, вызвав get_current_file_name.

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

...