【问题标题】:How to configure boost log, for writing with rotating and appending?如何配置 boost 日志,用于旋转和追加写入?
【发布时间】:2012-05-14 10:17:01
【问题描述】:

如何配置boost log,进行旋转和追加写入?

并且重启程序后,不要清除日志文件。

int init_log()
{
    typedef sinks::synchronous_sink< sinks::text_file_backend > file_sink;
    boost::shared_ptr< file_sink > sink( new file_sink (
       keywords::file_name = "app.log", // only one files
       // keywords::open_mode = (std::ios::out | std::ios::app), // is not append
       keywords::open_mode = (std::ios::out | std::ios::app), // is not rotated
       keywords::rotation_size = 10 * 1024
     ));
}

【问题讨论】:

标签: c++ logging boost


【解决方案1】:

请试试这个(关键是使用一些模式添加日志名称,而不是像“app.log”这样固定它的名称)这将启用flre轮换并将数据附加到每个创建的文件。关于日志清除,只要您没有指定自定义 file_collector,您的日志应该保持原样:)

typedef sinks::synchronous_sink< sinks::text_file_backend > file_sink;
boost::shared_ptr< file_sink > sink( new file_sink(
        keywords::file_name     = "app%m%d%Y_%H%M%S_%5N.log",   // file name pattern
        keywords::rotation_size = 10*1024                       // rotation size, in characters
        ));

【讨论】:

  • 日志数据应该附加到同一个日志文件中,对于每个程序调用,直到达到旋转大小。使用该代码,每次运行都会创建一个新的日志文件。
猜你喜欢
  • 2018-09-08
  • 1970-01-01
  • 2020-03-02
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多