5

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

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

4

3 回答 3

3

场景一:用户自建记录器

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

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

场景 2:全局记录器

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

spdlog版本 1.8.0 及更高版本

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

spdlog1.8.0 之前的版本

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

于 2020-07-22T21:25:39.430 回答
3

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

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

于 2018-06-18T09:41:37.050 回答
2

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

spdlog::get_level();
于 2021-03-09T21:16:12.097 回答