Целочисленный шаблон имени файла ротации в Boost Log никогда не перезапускается - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь создать систему журналирования, которая хранит три предыдущих журнала в каталоге «сохраненные» и текущий. Я использую шаблон filename_% 2N. Все работает нормально, но, проверяя его, целое имя файла никогда не перезапускается, поэтому через некоторое время я получаю файлы типа log_2020.log. Даже если я установлю fileConfig.numFiles в 3, число перейдет к N. Когда это число будет перезапущено? Есть ли способ сделать это?

boost::shared_ptr<fileSink_t> file(new FileAppender::fileSink_t(
     boost::log::keywords::open_mode = (std::ios::app | std::ios::out),
     boost::log::keywords::file_name = fileConfig.path+fileConfig.filename+"_%2N.log",
     boost::log::keywords::rotation_size = fileConfig.maxSizekb * 1024,
     boost::log::keywords::auto_flush = true
));
file->locked_backend()->set_file_collector(boost::log::sinks::file::make_collector(
    boost::log::keywords::target = fileConfig.path+"/stored",
    boost::log::keywords::max_files = fileConfig.numFiles
));
file->locked_backend()->scan_for_files();

1 Ответ

0 голосов
/ 23 мая 2019

Вы можете избежать инициализации счетчика файлов, если передаете false параметру update_counter scan_for_files():

file->locked_backend()->scan_for_files(boost::log::sinks::file::scan_matching, false);

Обратите внимание, что это создаст возможность конфликта имен файлов.

...