С помощью spdlog, Как я могу изменить время пролонгации ежедневного регистратора по умолчанию?
В следующем примере переход происходит только в полночь:
auto logger = spd::daily_logger_st("my_logger", "fl_log.txt");
В настоящее время нет прямого способа изменить время ротации в ежедневнике — пожалуйста, откройте вопрос Вот..
Быстрый обходной путь — изменить _calc_midnight_tp()
функция для возврата желаемого времени вращения вместо полуночи в daily_file_sink учебный класс..
Например, чтобы повернуть в 1 час ночи вместо полуночи:
static std::chrono::system_clock::time_point _calc_midnight_tp()
{
using namespace std::chrono;
auto now = system_clock::now();
time_t tnow = std::chrono::system_clock::to_time_t(now);
tm date = spdlog::details::os::localtime(tnow);
date.tm_min = date.tm_sec = 0;
date.tm_hour = 1;
auto rotate_time = std::chrono::system_clock::from_time_t(std::mktime(&date));
return system_clock::time_point(rotate_time + hours(24));
}
редактировать: Я привержен решение этой проблемы. Теперь пользователь может установить ЧЧ: ММ желаемого времени прокатки