我使用的是boost日志,我想在每小时开始时创建一个基本的日志主体文件:新的错误日志(如果存在错误),并将其命名为"file_%Y%m%d%H.log"。我对这个提升库有两个问题:1.如何在每小时开始时轮换文件?rotation_at_time_interval参数不可能做到这一点,因为它会创建关于文件中第一个写入记录的新文件,而文件名中的小时与该规则不匹配。是否可以为接收器中的一个文件设置多个rotation_at_time_point,或者是否有其他解决方案?2.当文件超过某个大小时,我希望它启动新文件,在这种情况下,它应该在文件名后面添加一些索引。通过将rotation_size parametar和%N添加到文件名,它将在应用程序运行时始终递增N。我希望N在每小时开始时重置,就像我的文件名更改一样。有人知道如何使用这个boost日志库吗?
这是在工业中创建日志文件的基本原则。我真的不明白为什么用专门用于创建日志文件的库不能做到这一点。
Library本身并没有提供在每小时乞求时旋转文件的方法,但我遇到了同样的问题,所以我使用了一个函数包装器,在每小时乞讨时返回true。我发现这种方式对我来说更好,因为我可以控制代码的效率。
来自boost.org:
bool is_it_time_to_rotate();
void init_logging(){
boost::shared_ptr< sinks::text_file_backend > backend =
boost::make_shared< sinks::text_file_backend >(
keywords::file_name = "file_%5N.log",
keywords::time_based_rotation = &is_it_time_to_rotate
);
}
对于第二个问题,我真的没有很好地回答。