磁盘满时Boost日志崩溃

时间:2018-07-24 02:39:32

标签: c++ logging boost boost-log

Boost日志会在磁盘空间不足时导致应用程序崩溃。

如果我在excel中打开一个活动日志文件,当excel打开该文件时,它也会尝试将文件翻转。

我的应用程序由于日志记录而崩溃非常糟糕。它应该只是默默地失败。从转储中,它看起来像是未处理的异常。

如何使它静默失败而不是使应用程序崩溃?

我正在使用boost trvial logger并按如下方式进行配置:

    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)
    );

1 个答案:

答案 0 :(得分:1)

您必须告诉boost log抑制异常,像这样:

boost::log::core::get()->set_exception_handler(boost::log::make_exception_suppressor());