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

Давайте рассмотрим пример из boost :: log доктор.

void init()
{
logging::add_file_log
(
keywords::file_name = "sample_%N.log",
keywords::rotation_size = 10 * 1024 * 1024,
keywords::open_mode = (std::ios::out | std::ios::app),
keywords::format = "[%TimeStamp%]: %Message%");

logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}

int main(int, char*[])
{
init();
logging::add_common_attributes();

using namespace logging::trivial;
src::severity_logger< severity_level > lg;

BOOST_LOG_SEV(lg, trace) << "A trace severity message";
return 0;
}

Первый раз, когда я запускаю свою заявку и файл sample_0.log создано. При втором запуске приложения новое сообщение добавляется в тот же файл. sample_0.log, я хочу sample_1.log быть созданным приложением. Я хочу вращать файлы журналов при каждом запуске приложения. Как я могу заархивировать это с boost::log? Благодарю.

1

Решение

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

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

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

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector