如何获取当前的 spdlog 级别?

How*_*ieh 5 c++ logging spdlog log-level

我需要在某些代码之前关闭 spdlog 级别,然后将其返回到之前的值。

如何在关闭之前获得当前级别?

ein*_*ica 5

场景1:用户构建的记录器

如果您有一个spdlog::logger正在使用的对象(例如my_logger),那么:

  • 您可以通过以下方式获得级别:my_logger.level()
  • 如果您只想知道是否会记录某个级别的消息,请使用my_logger.should_log(some_level)where some_levelmight be,例如spdlog::level::debug

场景 2:全局记录器

现在假设您正在使用全局记录器(例如 spdlog::info(),您使用spdlog::error()等发出日志消息)。

spdlog1.8.0 及更高版本

您可以通过调用spdlog::get_level()(这是一个独立函数,而不是方法)来获取全局日志级别。

spdlog1.8.0之前的版本

您需要通过调用spdlog::default_logger_raw()(它会为您提供一个指针)来获取隐式记录器对象。现在只需按照上面的场景 1 进行操作即可。


iam*_*ony 4

要获取记录器的当前级别,请使用logger::level()

要设置新级别,请使用logger::set_level()