BOOST_LOG_SEV 中的严重级别

Posted

技术标签:

【中文标题】BOOST_LOG_SEV 中的严重级别【英文标题】:Severity level in BOOST_LOG_SEV 【发布时间】:2015-07-31 09:23:56 【问题描述】:

为什么这个代码行可以正常工作:

BOOST_LOG_SEV(lg,debug) << "tst message";

虽然这个在编译时失败:

BOOST_LOG_SEV(lg,trivial::severity_level::debug) << "tst message";

失败信息:

Error   20  error C2653: 'trivial' : is not a class or namespace name

我想两者 - debugtrivial::severity_level::debug 是相同的。如果我在 debug 上的 Visual Studio 中按 F12,它会与 trivial::severity_level::debug 中的 trivial.hpp 完全相同

【问题讨论】:

【参考方案1】:

看起来您使用了命名空间boost::log::trivial。 在第二种情况下,您应该指定 boost::log::trivial::debug,即debug 的完整路径。

请注意,对于标准 C++03 代码,您不应该编写 severity_level,因为它是枚举,但从 C++11 开始,您可以根据需要使用 boost::log::trivial::severity_level::debug

【讨论】:

但是 'BOOST_LOG_SEV(lg,boost::log::trivial::severity_level::debug)' 现在可以正常工作了。为什么我应该跳过“severity_level”?

以上是关于BOOST_LOG_SEV 中的严重级别的主要内容,如果未能解决你的问题,请参考以下文章

仅当存在警告或更严重级别的日志事件时记录所有级别

不同的 RAISERROR 严重级别是啥意思?

bug的严重级别和优先级

如何根据级别(系统日志严重性/优先级)在 Graylog 中查找消息

GAE灵活和Stackriver日志严重级别与python

SQL Server错误严重性级别和异常处理