如何配置升压日志,用于旋转和追加写入?

12 c++ logging boost

如何配置升压日志,用于旋转和追加写入?

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

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
     ));
}
Run Code Online (Sandbox Code Playgroud)

Shm*_*Cat 6

请尝试一下(关键是使用某种模式添加日志名称而不是像"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
        ));
Run Code Online (Sandbox Code Playgroud)

  • 对于每个程序调用,日志数据应附加到同一日志文件中,直到达到旋转大小.使用该代码,每次运行都会创建一个新的日志文件. (7认同)