Недавно я попытался добавить ведение журнала через журнал Boost в небольшое приложение. Однако, используя ротацию журналов, я по какой-то причине не могу заставить его подобрать правильный счетчик в каталоге журналов.
Например, если мой каталог Logs
содержит файлы Log_000.log
и Log_001.log
, я ожидаю, что ведение журнала начнется с Log_002.log
, но оно всегда начинается снова с 0.
Я, вероятно, что-то упускаю, но если кто-то может найти что-то, я был бы благодарен. Вот мой код запуска:
void initLogging()
{
boost::log::add_common_attributes();
auto core = boost::log::core::get();
core->add_global_attribute("UTCTimeStamp",boost::log::attributes::utc_clock());
auto x = boost::log::add_file_log(
boost::log::keywords::file_name = "Log_%3N.log",
boost::log::keywords::rotation_size = 2 * 1024, // 2k
boost::log::keywords::target = "Logs",
boost::log::keywords::min_free_space = 30 * 1024 * 1024,
boost::log::keywords::max_size = 20 * 1024, // 20k
boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point(boost::gregorian::greg_day(31)),
boost::log::keywords::scan_method = boost::log::sinks::file::scan_matching,
boost::log::keywords::format = "%UTCTimeStamp% (%TimeStamp%) [%ThreadID%]: %Message%",
boost::log::keywords::auto_flush = true
);
auto d = x->locked_backend()->scan_for_files();
}
Большое спасибо
x->locked_backend()->set_file_collector(boost::log::sinks::file::make_collector(boost::log::keywords::target = "Logs"));
перед вызовомscan_for_files
. - person llonesmiz   schedule 17.07.2015