Как перенаправить Boost.Log в файл

Мне нужен простой файл журнала в параллельном приложении. Я скачал Boost.Log v2.0 и скомпилировал его с помощью Boost 1.53.0.

Проблема в том, что Boost.Log выводится на консоль. Я использую BOOST_LOG_TRIVIAL(trace).

Есть ли хороший способ перенаправить BOOST_LOG_TRIVIAL в файл?


person Elvis Dukaj    schedule 19.04.2013    source источник


Ответы (1)


Вы можете заставить BOOST_LOG_TRIVIAL использовать файл с (при условии, что namespace logging = boost::log;:

#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/utility/setup/file.hpp>

void init()
{
    logging::add_file_log("sample.log");

    logging::core::get()->set_filter
    (
        logging::trivial::severity >= logging::trivial::info
    );
}

И в основном:

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;
}
person m0nhawk    schedule 19.04.2013
comment
какой заголовок я должен включить для ведения журнала :: add_file_log (sample.log)? - person Elvis Dukaj; 22.04.2013
comment
@elvis.dukaj: #include <boost/log/utility/setup/file.hpp> - person m0nhawk; 24.04.2013