2012-06-10 12 views
10

boost :: log sembra davvero potente. Offre una macro BOOST_LOG_TRIVIAL per la registrazione banale. Ma come posso cambiare la formattazione predefinita? Stampa il timestamp di default, non lo voglio. Hai qualche idea? Sembra che l'unico modo sia definire un nuovo sink ex-novo e aggiungerlo al core, quindi puoi chiamare set_format() sul backend nel caso. Ma questo non è più "banale".Come modificare la formattazione predefinita con boost :: log :: BOOST_TRIVIAL_LOG?

risposta

15

Boost.Log ha un sink predefinito, che viene utilizzato fino a quando non si fornisce il proprio sink. Il seguente frammento di codice modifica il formato del log della console aggiungendo un nuovo sink.

#include <boost/log/trivial.hpp> 
#include <boost/log/utility/setup/console.hpp> 

int main() 
{ 
    boost::log::add_console_log(std::cout, boost::log::keywords::format = ">> %Message%"); 
    BOOST_LOG_TRIVIAL(info) << "Hello world!"; 
} 

Si noti che è necessario aggiungere la libreria log_setup al vostro costruire vale a dire fare un

-lboost_log_setup -lboost_log 

dove l'ordine del librerie è importante.

Problemi correlati