boost log #2
我们在init()里初始化我们的logger。logging::core::get()返回这个logger。我们现在设置一个过滤器,让logger只打印info和info级别以上的日志。
void init() { logging::core::get()->set_filter ( logging::trivial::severity >= logging::trivial::info ); } int main(int, char*[]) { init(); BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; BOOST_LOG_TRIVIAL(info) << "An informational severity message"; BOOST_LOG_TRIVIAL(warning) << "A warning severity message"; BOOST_LOG_TRIVIAL(error) << "An error severity message"; BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message"; return 0; }
你可以在程序里随时改变过滤等级,这样,我们可以开启一个线程用来侦听你要设置的等级。
#include <iostream> #include <boost/log/core.hpp> #include <boost/log/trivial.hpp> #include <boost/log/expressions.hpp> namespace logging = boost::log; using namespace std; void SetFilter1() { logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::info); } void SetFilter2() { logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::debug); } int main () { cout << "hello, world" << endl; SetFilter1(); BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; BOOST_LOG_TRIVIAL(info) << "An informational severity message"; BOOST_LOG_TRIVIAL(warning) << "A warning severity message"; BOOST_LOG_TRIVIAL(error) << "An error severity message"; BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message"; SetFilter2(); BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; BOOST_LOG_TRIVIAL(info) << "An informational severity message"; BOOST_LOG_TRIVIAL(warning) << "A warning severity message"; BOOST_LOG_TRIVIAL(error) << "An error severity message"; BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message"; }