boost::log возможно ли вращать файл каждый раз при запуске приложения?


person Viktor    schedule 27.03.2018    source источник


Ответы (1)


Возможно, вы захотите не поворачивать файл при запуске (что означает закрытие текущего файла и открытие нового), а создать файл с таким именем, которое не конфликтует с именами файлов, оставленных пользователем. предыдущие запуски вашего приложения.

Для этого нужно сделать две вещи. Во-первых, вам нужно настроить сборщик файлов, который будет получать ротированные файлы журналов и, возможно, управлять ими. Сборщик файлов работает с одним целевым каталогом, где хранятся все повернутые файлы. Вы можете указать этот каталог, добавив target именованный параметр к вашему add_file_log вызову; это создаст сборщик файлов для вашего приемника. Обратите внимание, что целевой каталог может быть таким же, как и тот, в котором ваш приемник создает файл — это будет просто означать, что перемещение повернутого файла журнала в целевой каталог не является операцией.

Во-вторых, при запуске приложения необходимо вызвать метод scan_for_files на серверной части приемника. Это заставит сборщик файлов сканировать целевой каталог на наличие файлов журналов, которые могли остаться после предыдущих запусков. Если шаблон имени файла включает в себя счетчик файла, вызов также может определить следующее значение счетчика, что вам и нужно. Функция add_file_log сделает это автоматически за вас, если вы настроили сборщик файлов (т.е. добавили параметр target named), но если вы создаете сток вручную, вам придется вызывать его самостоятельно.

Управление повернутыми файлами, включая функцию scan_for_files, задокументировано здесь.

person Andrey Semashev    schedule 27.03.2018