如何获取当前的 spdlog 级别?

How to get the current spdlog level?

本文关键字:spdlog 级别 何获取 获取      更新时间:2023-10-16

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

如何在关闭之前获取当前水平?

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

如果您有正在使用的spdlog::logger对象(例如,my_logger(,则:

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

方案 2:全局记录器

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

spdlog版本 1.8.0 及更高

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

spdlog1.8.0 之前的版本

你需要掌握隐式记录器对象 - 通过调用spdlog::default_logger_raw()(它会给你一个指针。现在只需按照上面的场景 1 继续操作。

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

要设置新级别,请使用记录器::set_level((。

现在似乎有一个函数可以获取全局日志记录级别:

spdlog::get_level();