Boost.Log - 记录应用程序的严重错误

时间:2011-11-13 17:13:00

标签: c++ boost logging

我在我的应用程序中使用Boost.log。 如果多个线程大量记录,则日志记录操作不能锁定,因此我使用此接收器进行日志记录:

    boost::log::sinks::ordering_asynchronous_sink

进入这个前端文件:

    boost::log::sinks::text_file_backend

日志记录的主要目的是查看严重错误以诊断崩溃。 然而,我注意到记录只是偶尔写入文件一次(当一定数量的记录可能加起来时),这意味着突然崩溃将不会留下任何记录记录来解释它。

我可以在这做什么?我可以强制文件写入致命严重性错误吗?更好的方法?

1 个答案:

答案 0 :(得分:2)

听起来您的日志条目没有立即刷新到磁盘。这是提高磁盘性能的典型默认行为(避免过多的小写操作),但它具有您在此处描述的缺点。您可以在日志记录后端设置auto_flush标志,以确保所有日志条目立即写入磁盘。有关详细信息,请参阅docs