是否可以访问BOOST_LOG_TRIVIAL使用的底层流实例?
我试图让BOOST单元测试框架使用BOOST_LOG_TRIVIAL编写输出(我已经将它配置为在文件和std::clog中编写)
auto& log_stream = ??// BOOST_LOG_TRIVIAL流实例log_stream
发布于 2016-11-05 02:33:47
是否可以访问BOOST_LOG_TRIVIAL使用的底层流实例?
不,不是的。在内部,Boost.Log中的默认接收器--除非您配置了自己的接收器--由BOOST_LOG_TRIVIAL
使用,甚至不使用流。
我认为,将Boost.Test与Boost.Log集成的最佳方法是实现您自己的流缓冲区(一个从std::streambuf
派生的类)。缓冲区必须将来自Boost.Test的输出转换为单独的日志记录(例如,将其拆分为换行符),并通过BOOST_LOG_TRIVIAL
或其他方式将记录传递给Boost.Log。然后,您可以创建一个引用流缓冲区的std::ostream
对象,并将其传递给Boost.Test到set_stream
。
https://stackoverflow.com/questions/40425574
复制