2

我使用文本文件后端作为接收器,其中包含占位符元素

  • 日期
  • 对数旋转计数器

“%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

当文件在午夜获得新名称时,计数器不会重置。当我在中午重新启动程序时,出现了令人困惑的日志轮换顺序。

问题:
当文件名中的日期更改但程序继续运行时,有人可以帮助并告诉我如何重置日志轮换计数器吗?

先感谢您。

4

0 回答 0