如何获取当前spdlog级别?

问题描述 投票:0回答:3

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

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

c++ logging log-level spdlog
3个回答
7
投票

场景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()
(这是一个独立函数,而不是方法)来获取全局日志级别。

spdlog
1.8.0之前的版本

您需要通过调用

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


4
投票

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

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


2
投票

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

spdlog::get_level();
© www.soinside.com 2019 - 2024. All rights reserved.