我正在使用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」我缺少,或手動告訴它停止記錄到原始日誌並移動到下一個?