【问题标题】:How to set the severity level of Boost log library如何设置Boost日志库的严重级别
【发布时间】:2021-12-26 05:28:56
【问题描述】:

我已经在我的项目中成功使用了 Boost Log 库。换句话说,我通过BOOST_LOG_TRIVIAL(info) << "My message";发出日志消息

现在我想控制日志的严重性,我按照Boost Log库documentation中的示例进行操作:

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

namespace logging = boost::log;

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

但是,我收到此编译错误:

main.cpp:22:25: error: ‘severity’ is not a member of ‘boost::log::v2s_mt_posix::trivial’
   22 |       logging::trivial::severity >= logging::trivial::info

这是我的 CMakeLists.txt 的相关部分:

SET(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.71 COMPONENTS log graph REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})

add_executable(ls_router main.cpp)
target_link_libraries(ls_router PUBLIC ${Boost_LIBRARIES} pthread)

我在 Ubuntu 上并通过 sudo apt install libboost-all-dev 安装了 Boost。

dpkg -l | grep libboost-log
ii  libboost-log-dev                       1.71.0.0ubuntu2                       amd64        C++ logging library (default version)
ii  libboost-log1.71-dev                   1.71.0-6ubuntu6                       amd64        C++ logging library
ii  libboost-log1.71.0                     1.71.0-6ubuntu6                       amd64        C++ logging library

根据这个 SO question,这可能是 CMake 配置问题。 Boost.Log with CMake causing undefined reference error。但是,问题中的任何建议都没有解决我的问题。

【问题讨论】:

    标签: c++ boost cmake


    【解决方案1】:

    severity 关键字在 boost/log/detail/trivial_keyword.hpp 中定义。显然它没有被包括在内。

    我能找到的最少的包含集:

    #include <boost/log/core.hpp>
    #include <boost/log/trivial.hpp>
    #include <boost/log/expressions.hpp>
    
    namespace logging = boost::log;
    
    void init()
    {
        logging::core::get()->set_filter(logging::trivial::severity >=
                                         logging::trivial::info);
    }
    
    int main() { init(); }
    

    根据这个 SO question,这可能是 CMake 配置问题

    这是关于链接器错误的,这不是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-07
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多