每小时提升一次轮换日志

时间:2017-06-13 11:31:26

标签: c++ boost-log log-rotation

我使用boost :: log作为服务的日志记录引擎。我知道如何将日志轮换设置为每日/每周,但我想要设置的是每小时轮换日志。我无法在boost中找到任何直接的实现,我想也许有人有解决方法?

此外,是否可以创建旋转文件,即使特定小时没有日志条目?

用例:

log_file.log
13.06.2016 12:02 line1
13.06.2016 12:23 line2
13.06.2016 12:45 line3
13.06.2016 13:02 line4
13.06.2016 15:02 line5

我希望输出文件为:

**log_file_13:06:2016-12**
13.06.2016 12:02 line1
13.06.2016 12:23 line2
13.06.2016 12:45 line3

**log_file_13:06:2016-13**
13.06.2016 13:02 line4

**log_file_13:06:2016-14**

**log_file_13:06:2016-15**
13.06.2016 15:02 line5

非常感谢任何建议/代码示例。

1 个答案:

答案 0 :(得分:2)

我想你正在使用boosts sink backends。从那里开始,每小时轮换一次是可能的:

  

时间间隔旋转:rotation_at_time_interval类。使用此谓词时,旋转不会绑定到任何时间点,并且一旦自上一次旋转后经过指定的时间间隔就会发生。这是每小时轮换的方法:

sinks::file::rotation_at_time_interval(posix_time::hours(1))