gpt4 book ai didi

c++ - 如何在代码中启用/禁用 spdlog 日志记录?

转载 作者:搜寻专家 更新时间:2023-10-31 01:31:33 27 4
gpt4 key购买 nike

我正在我的应用程序中创建 C++ 库模块。为了进行日志记录,我使用 spdlog .但是在生产环境中,我不希望我的 lib 模块进行任何日志记录。实现打开/关闭的一种方法是在我的代码中添加#ifdef 条件语句,例如...

#ifdef logging
// call the logger here.
#endif

我正在寻找一种方法来避免编写这些条件语句。可能是一个包装函数,它执行#ifdef 检查并写入它。但是这种方法的问题是我必须为每个日志记录方法(例如信息、跟踪、警告、错误……)编写包装器

有没有更好的办法?

最佳答案

您可以使用 set_level() 禁用日志记录:

auto my_logger = spdlog::basic_logger_mt("basic_logger", "logs/basic.txt");

#if defined(PRODUCTION)
my_logger->set_level(spdlog::level::off);
#else
my_logger->set_level(spdlog::level::trace);
#endif

spdlog::register_logger(my_logger);

关于c++ - 如何在代码中启用/禁用 spdlog 日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com