Я использую boost :: log для одновременного входа в файл, а также в консоль. Он инициализирован так:boost :: log закрыть файл журнала и открыть новый
void Init() {
logging::core::get()->set_filter
(
// set logging level to one of trace, debug, info, warning, error, fatal
logging::trivial::severity >= logging::trivial::trace
);
logging::add_common_attributes(); // enables timestamps and such
logging::add_file_log
(
keywords::file_name = logfile + "_%N.log",
keywords::rotation_size = 1024 * 1024 * 50, // 50MB log file max
// keywords::format = "[%TimeStamp%]: %Message%"
keywords::format = "%Message% #[%TimeStamp%]"
);
logging::add_console_log(std::cout,
keywords::format = "%Message%"
);
}
В некоторых случаях в моей программе я хотел бы вручную изменить файл журнала. Я могу изменить строку «logfile» в приведенном выше коде и снова вызвать этот Init(), но затем он продолжает записывать в старый файл журнала и запускает новый, и начинает удваивать вывод в журнале консоли.
Есть ли какой-либо соответствующий «remove_file_log», который мне не хватает, или вручную сообщите ему, чтобы остановить запись в исходный журнал и перейти к следующему?