我在应用程序中创建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/