gpt4 book ai didi

c++ - 我可以访问 BOOST_LOG_TRIVIAL 使用的流实例吗?

转载 作者:行者123 更新时间:2023-11-28 05:26:41 26 4
gpt4 key购买 nike

是否可以访问 BOOST_LOG_TRIVIAL 使用的底层流实例?

我正在尝试使用 BOOST_LOG_TRIVIAL(我已将其配置为写入文件和 std::clog)让 BOOST 单元测试框架写入输出

自动& log_stream = ???//BOOST_LOG_TRIVIAL 流实例boost::unit_test::unit_test_log.instance().set_stream(log_stream);

最佳答案

Is it possible to access the underlying stream instance used by BOOST_LOG_TRIVIAL?

不,不是。在内部,除非您配置自己的接收器,否则由 BOOST_LOG_TRIVIAL 使用的 Boost.Log 中的默认接收器甚至不使用流。

我认为,将 Boost.Test 与 Boost.Log 集成的最佳方式是实现您自己的流缓冲区(一个派生自 std::streambuf 的类)。缓冲区必须将 Boost.Test 的输出转换为单独的日志记录(例如,通过将其拆分为换行符)并通过 BOOST_LOG_TRIVIAL 或其他方式将记录传递给 Boost.Log。然后,您可以创建一个引用您的流缓冲区的 std::ostream 对象,并将其传递给 Boost.Test 到 set_stream

关于c++ - 我可以访问 BOOST_LOG_TRIVIAL 使用的流实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425574/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com