The Boost C++ library has Function Template tee
The class templates tee_filter and tee_device provide two ways to split an output sequence so that all data is directed simultaneously to two different locations.
I am looking for a complete C++ example using Boost tee to output to standard out and to a file like "sample.txt".
Here's an example using tee_filter
I'm currently using to tee my Boost.Test output:
{ // init code, use static streams to keep them alive until test run process end
using namespace boost::iostreams;
static ofstream ofs("boost_test_output.log.xml"); // log file
static tee_filter<ostream> fileFilt(ofs); // tee all passed data to logfile
// note derives from `boost::iostreams::output_filter`
static text_xml_readability_filter xmlFilt; // filter all passed data, making the XML output readable
static filtering_ostream filter; // master filter
filter.push(fileFilt); // 1st, tee off any data to the file (raw boost XML)
filter.push(xmlFilt); // 2nd make the xml data stream readable (linebreaks, etc.)
filter.push(cout); // 3rd output the readable XML to cout
boost::unit_test::unit_test_log.set_stream( filter );
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With