boost/log 怎么解决保证在未达到目标大小的日志中继续写的情况下,同时保证单个日志文件的循环?

logging::add_file_log

    (
        keywords::rotation_size = 10*1024*1024,
        keywords::file_name = "%Y.%m.%d.txt",
        keywords::time_based_rotation = sinks::file::rotation_at_time_point(0, 0, 0),
        keywords::format = "[%TimeStamp%]: %Message%",
        keywords::open_mode = std::ios::app
    );


            注意,是单个日志文件循环,现在有以下两个问题:
            1.ios:app 和 rotation_size无法兼容,ios:app导致日志超出循环大小。
            2.是单个日志文件循环,在日志文件达到10M大小后或者是到了第二天(重点),用新的日志文件覆盖原有的日志文件,而不是加个%N,生成很多日志文件

问题解决了,boost/log的app和轮转之所以冲突,是因为文件名是固定的,每次扫描文件夹都会在原文件上进行轮转和append,我写了个监控器,给他分配个线程,监控文件大小,就OK了

到了10m后你是想删掉第一行,然后在在最后面插入一行吗?

那就用 std::ios:trunc

不知道为什么我不能回复了呢
那得先判断是是否到了10m了

保存原来文件名,关闭,删除,再创建同样文件名; 或者 关闭,不追加方式写打开,关闭,再用追加的方式写打开,虽然方法笨了点,但有用