我需要在一些代码之前关闭 spdlog 级别,然后将其返回到之前的值。
如何在关闭之前获得当前级别?
如果你有一个spdlog::logger
正在使用的对象(比如my_logger
),那么:
my_logger.level()
。my_logger.should_log(some_level)
where some_level
could be,例如spdlog::level::debug
.现在假设您正在使用全局记录器(例如,您使用 等发出日志消息 spdlog::info()
)spdlog::error()
。
spdlog
版本 1.8.0 及更高版本
您可以通过调用来获取全局日志级别spdlog::get_level()
(这是一个独立的函数,而不是一个方法)。
spdlog
1.8.0 之前的版本
您需要掌握隐式记录器对象 - 通过调用spdlog::default_logger_raw()
(它为您提供一个指针。)现在只需按照上面的场景 1 进行操作。
要获取记录器的当前级别,请使用logger::level()。
要设置新级别,请使用logger::set_level()。
现在似乎有一个函数可以获取全局日志记录级别:
spdlog::get_level();