gpt4 book ai didi

c++ - boost 日志 : variable is not a member of ‘boost::log::v2s_mt_posix::trivial’

转载 作者:行者123 更新时间:2023-11-28 05:05:34 25 4
gpt4 key购买 nike

我想切换不同的 boost::log 严重级别,使用单个变量来控制大量的 BOOST_TRIVIAL_LOG(lvl) 调用。

// Class header
const boost::log::trivial::severity_level _LVL_DEBUG;

// Class ctor initialize list
#ifdef FOO_MACRO
_LVL_DEBUG(boost::log::trivial::severity_level::info)
#else
_LVL_DEBUG(boost::log::trivial::severity_level::debug)
#endif

// Class method
BOOST_LOG_TRIVIAL(_LVL_DEBUG) << "Foo bar";

但是在g++编译的时候得到

error: ‘_LVL_DEBUG’ is not a member of ‘boost::log::v2s_mt_posix::trivial’

我想知道我哪里漏掉了重点。

编辑 1

boost::log::trivial::info(或其他级别的 ofc)相同的输出

最佳答案

不清楚您要做什么。 BOOST_LOG_TRIVIAL(x) 将严重级别 x 扩展为 boost::log::trivial::severity_level::x,其中 severity_level 是一个枚举,x 应该是该枚举的值。

如果你想在编译时控制严重级别,那么你所要做的就是像这样定义你的宏:

#ifdef FOO_MACRO
#define _LVL_DEBUG info
#else
#define _LVL_DEBUG debug
#endif

然后像这样在日志语句中使用它:

BOOST_LOG_TRIVIAL(_LVL_DEBUG) << "Foo bar";

如果您想要运行时控制,那么您不能再使用 BOOST_LOG_TRIVIAL,而必须使用 BOOST_LOG_SEV 或其他直接采用严重性级别的宏。这也意味着您必须自己创建和管理记录器。

关于c++ - boost 日志 : variable is not a member of ‘boost::log::v2s_mt_posix::trivial’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44908444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com