Я использую текстовый файл для приемника, который содержит элементы-заполнители
«% Y-% m-% d_mylogfile_% 3N.log»
Кроме того, серверная часть настроена на вращение с определенным размером и в полночь.
using namespace boost::log;
boost::shared_ptr<sinks::text_file_backend> backend = boost::make_shared<sinks::text_file_backend>(keywords::file_name = "%Y-%m-%d_mylogfile_%3N.log", keywords::rotation_size = 30 * 1024 * 1024, keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),keywords::open_mode = std::ios_base::app);
Это хорошо работает для программ, которые не работают в полночь. Когда программа запускается в течение одного дня и запускается в полдень, у меня возникает следующая проблема:
2017-11-23_mylogfile_000.log
2017-11-23_mylogfile_001.log
// after rotation on midnight
2017-11-24_mylogfile_002.log // <-- counter does not reset to 000
// after restart of the program at noon
2017-11-24_mylogfile_000.log
Счетчик не сбрасывается, когда файл получает новое имя в полночь. Когда я перезапускаю программу в полдень, возникает непонятный порядок ротации журналов.
Вопрос:
Может кто-нибудь помочь и подсказать, как сбросить счетчик логов, когда меняется дата в имени файла, но программа продолжает работать?
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …