I want a simple log file in a concurrent application. I've download Boost.Log
v2.0 and using compiled it with Boost 1.53.0
.
The problem is that Boost.Log
output on console. I'm using BOOST_LOG_TRIVIAL(trace)
.
Is there a nice way to redirect BOOST_LOG_TRIVIAL
to a file?
It is thread-safe regardless of the kind of loggers you use.
Boost. Log, part of collection of the Boost C++ Libraries, provides tools for adding logging to libraries and applications.
You can make BOOST_LOG_TRIVIAL
use a file. Note that most of the boost::log
examples use a namespace alias as shown below.
#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/utility/setup/file.hpp>
namespace logging = boost::log;
void init()
{
logging::add_file_log("sample.log");
logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}
And in main:
int main(int, char*[])
{
init();
BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
// other types of severity
BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";
return 0;
}
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