c++ - 如何配置 boost 日志,用于旋转和附加写入?

标签 c++ logging boost

如何配置 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
     ));
}

最佳答案

请试试这个(关键是使用一些模式添加日志名称而不是像“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
        ));

关于c++ - 如何配置 boost 日志,用于旋转和附加写入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581405/

相关文章:

c++ - 无法将 splitterChannel 与 poco 的高级 xml 配置一起使用

java - Log4j - 有时只需要换行

c++ - 如何与android的静态boost库链接?

c++ - 高效计算 vector 组合

c++ - 为什么 unordered_multiset 对许多相等的键不起作用

c++ - 如何在没有root权限的情况下获取linux中进程的内存使用情况

java - 使用 Log4j 2 的日志记录约定

c++ - 类似于 boost::multi_index for Python

c++ - boost::shared_ptr parent <-> child 通信

c++ - 如何分配类对象数组