升级日志旋转文件名模式整数从未重新启动



我正在尝试制作一个记录系统,该系统将以前的三个日志存储在目录"存储"和当前一个日志中。我正在使用图案fileName_%2N。一切正常,但是对其进行测试,文件名整数永远不会重新启动,因此一段时间后,我会收到log_2020.log之类的文件。即使我将fileconfig.numfiles设置为3,数字也转到n。当此整数重新启动时?有什么办法吗?

boost::shared_ptr<fileSink_t> file(new FileAppender::fileSink_t(
     boost::log::keywords::open_mode = (std::ios::app | std::ios::out),
     boost::log::keywords::file_name = fileConfig.path+fileConfig.filename+"_%2N.log",
     boost::log::keywords::rotation_size = fileConfig.maxSizekb * 1024,
     boost::log::keywords::auto_flush = true
));
file->locked_backend()->set_file_collector(boost::log::sinks::file::make_collector(
    boost::log::keywords::target = fileConfig.path+"/stored",
    boost::log::keywords::max_files = fileConfig.numFiles
));
file->locked_backend()->scan_for_files();

如果将false传递给scan_for_files()update_counter参数,则可以避免初始化文件计数器:

file->locked_backend()->scan_for_files(boost::log::sinks::file::scan_matching, false);

请注意,这将创建文件名碰撞的可能性。

最新更新