我正在尝试制作一个记录系统,该系统将以前的三个日志存储在目录"存储"和当前一个日志中。我正在使用图案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);
请注意,这将创建文件名碰撞的可能性。