c++ - 磁盘已满时 Boost 日志崩溃
问题描述
当我用完磁盘空间时,Boost 日志会导致我的应用程序崩溃。
如果我在 excel 中打开一个活动的日志文件,它也会崩溃,并且它会在 excel 打开文件时尝试翻转该文件。
由于日志记录,我的应用程序崩溃非常糟糕。它应该只是默默地失败。从转储来看,它看起来像是一个未处理的异常。
我怎样才能让它静默失败而不是让我的应用程序崩溃?
我正在使用 boost trivial 记录器并像这样配置它:
boost::log::add_file_log(
boost::log::keywords::file_name = "foo.log",
boost::log::keywords::target = C:\\log",
boost::log::keywords::rotation_size = 100000,
boost::log::keywords::max_size = 10 * 100000,
boost::log::keywords::auto_flush = true,
boost::log::keywords::format = "%TimeStamp%,%Message%",
boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point(0, 0, 0)
);
解决方案
您必须告诉 boost log 来抑制异常,如下所示:
boost::log::core::get()->set_exception_handler(boost::log::make_exception_suppressor());
推荐阅读
- java - Java,单击后为按钮设置边框会弄乱另一个JPanel
- reactjs - Redux 中间件执行操作而不调用 next
- angular - 如何使 ngx-bootstrap 模式水平调整大小?
- symfony - Symfony 4.2 isPasswordValid 方法在我的用户更改电子邮件时断开连接
- php - 我使用 php 获取值,但表是重复的
- c - 如何将 uint8_t 值数组转换为 C 中的十六进制转储字符字符串
- aem - 如何使用 cq:editConfig 包装组件
- css - Bulma 和 Fontawesome:如何垂直和水平对齐图标?
- css - Bootstrap 4 组件具有与卡片相同的填充且没有自定义 css
- powershell - 无法将 PowerShell 变量从数组插入 Invoke-Sqlcmd 调用