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

Boost.Log - logging an application's critical errors

本文关键字:严重错误 应用程序 记录 Log Boost      更新时间:2023-10-16

我在我的应用程序中使用Boost.log。如果有多个线程进行大规模日志记录,那么日志记录操作一定不能被锁定,因此我使用以下接收器进行日志记录:

    boost::log::sinks::ordering_asynchronous_sink

插入前端文件:

    boost::log::sinks::text_file_backend

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

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

听起来您的日志条目没有立即刷新到磁盘。这是提高磁盘性能的典型默认行为(避免太多的小写操作),但它有您在这里描述的缺点。您可以在日志记录后端设置auto_flush标志,以确保所有日志条目都立即写入磁盘。

相关文章: