私はboost :: logを使ってファイルとコンソールに同時にログインします。boost :: log closeログファイルを開き、新しいファイルを開く
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」がありませんか、または手動で元のログへのログを停止して次のログに移動するように指示しますか?