您可以在编译代码之前通过添加以下宏(在包括 spdlog.h 之前)禁用所有日志记录:
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_OFF
#include<spdlog.h>
它被解释为文件https://github.com/gabime/spdlog/blob/v1.x/include/spdlog/spdlog.h中的注释:
//
// enable/disable log calls at compile time according to global level.
//
// define SPDLOG_ACTIVE_LEVEL to one of those (before including spdlog.h):
// SPDLOG_LEVEL_TRACE,
// SPDLOG_LEVEL_DEBUG,
// SPDLOG_LEVEL_INFO,
// SPDLOG_LEVEL_WARN,
// SPDLOG_LEVEL_ERROR,
// SPDLOG_LEVEL_CRITICAL,
// SPDLOG_LEVEL_OFF
//
使用此宏还将加快您的生产代码,因为日志记录调用已从您的代码中完全删除。因此,这种方法可能比使用更好my_logger->set_level(spdlog::level::off);
但是,为了使完整的代码删除工作,您需要在记录时使用任一宏:
SPDLOG_LOGGER_###(logger, ...)
SPDLOG_###(...)
其中, , , , ,中###
的一个是。TRACE
DEBUG
INFO
WARN
ERROR
CRITICAL
后一个宏使用默认的 logger spdlog::default_logger_raw()
,前者可以与您的自定义记录器一起使用。可变参数...
代表日志调用的常规参数:fmt 字符串,后跟一些要拼接到消息中的值。