如何设置Boost日志库的严重级别
How to set the severity level of Boost log library
我已经成功地在我的项目中使用了 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 问题,这可能是 CMake 配置问题。
Boost.Log with CMake causing undefined reference error。但是,问题中 none 的建议解决了我的问题。
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(); }
According to this SO question, this might be a CMake configuration issue
那是关于链接器错误,这不是。
我已经成功地在我的项目中使用了 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 问题,这可能是 CMake 配置问题。 Boost.Log with CMake causing undefined reference error。但是,问题中 none 的建议解决了我的问题。
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(); }
According to this SO question, this might be a CMake configuration issue
那是关于链接器错误,这不是。