我使用文本文件后端作为接收器,其中包含占位符元素
- 日期
- 对数旋转计数器
“%Y-%m-%d_mylogfile_%3N.log”
此外,后端被配置为在一定大小和午夜旋转。
using namespace boost::log;
boost::shared_ptr<sinks::text_file_backend> backend = boost::make_shared<sinks::text_file_backend>(keywords::file_name = "%Y-%m-%d_mylogfile_%3N.log", keywords::rotation_size = 30 * 1024 * 1024, keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),keywords::open_mode = std::ios_base::app);
这适用于不超过午夜的程序。当一个程序运行一天,中午开始时,我有以下问题:
2017-11-23_mylogfile_000.log
2017-11-23_mylogfile_001.log
// after rotation on midnight
2017-11-24_mylogfile_002.log // <-- counter does not reset to 000
// after restart of the program at noon
2017-11-24_mylogfile_000.log
当文件在午夜获得新名称时,计数器不会重置。当我在中午重新启动程序时,出现了令人困惑的日志轮换顺序。
问题:
当文件名中的日期更改但程序继续运行时,有人可以帮助并告诉我如何重置日志轮换计数器吗?
先感谢您。