我正在使用boost日志,我想制作基本的日志主体文件:每小时开始时的新错误日志(如果存在错误),并将其命名为“file_%Y%m%d%H。日志”。 这个boost库有2个问题: 1.如何在每小时开始时旋转文件? 对于rotation_at_time_interval参数,这是不可能的,因为它会创建有关文件中第一个写入记录的新文件,并且文件名中的小时与该规则不匹配。是否可以在sink中为一个文件设置多个rotation_at_time_point,或者是否有其他解决方案? 2.当文件超过某个大小时,我希望它启动新文件,在这种情况下,它应该为文件名附加一些索引。通过将rotation_size parametar和%N添加到文件名,它将在应用程序运行时一直递增N.我希望N在每小时开始时重置,就像我的文件名更改一样。有没有人知道如何使用这个升级日志库?
这是在行业中创建日志文件的基本原则。我真的不明白如何使用专用于创建日志文件的库来完成这项工作。
答案 0 :(得分:0)
图书馆本身并没有提供一种在每小时的乞讨时旋转文件的方法,但是我有同样的问题所以我使用了一个函数包装器,它在每小时的乞讨时返回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
);
}
对于第二个问题,我真的不喜欢它。