повысить логирование с помощью фильтров

Я новичок в boost-log и попытался создать тривиальное ведение журнала с фильтрами пример работы с boost-log 1.1. Код выглядит следующим образом:

#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/filters.hpp>

void init()
{
    logging::core::get()->set_filter
    (
     filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info
     );
}

int main(int, char*[])
{
    BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
}

Компиляция с помощью clang приводит к следующим сообщениям об ошибках:

/Users/admin/Documents/cmake tests/boost-log/main.cpp:7:5: error: use of undeclared identifier 'logging'
    logging::core::get()->set_filter
    ^
/Users/admin/Documents/cmake tests/boost-log/main.cpp:9:3: error: use of undeclared identifier 'filters'; did you mean 'boost::log_mt_posix::filters'?
         filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info
         ^~~~~~~
         boost::log_mt_posix::filters
/usr/local/include/boost/log/filters/has_attr.hpp:32:11: note: 'boost::log_mt_posix::filters' declared here
namespace filters {
          ^
/Users/admin/Documents/cmake tests/boost-log/main.cpp:9:18: error: use of undeclared identifier 'logging'
         filters::attr< logging::trivial::severity_level >("Severity") >= logging::trivial::info

Похоже, что пример основан на более старой версии boost-log, и некоторые имена изменились. Можно ли легко исправить пример? Однако обновленный учебник, похоже, недоступен.


person sakra    schedule 14.01.2012    source источник


Ответы (1)


В примере в документах, похоже, отсутствуют следующие строки после включения:

namespace logging = boost::log;
namespace filters = boost::log::filters;
person Georg Fritzsche    schedule 14.01.2012
comment
К сожалению, это относится к большей части документации, из-за чего новичку очень сложно найти все необходимые включения и пространства имен :( - person Verena Haunschmid; 30.05.2017