c++通过宏控制Log日志的显示与否
当使用log打印日志消息时,有的日志不想输出,所以希望通过参数动态配置显示与否。
采用宏定义和static变量的方式控制日志的显示与否。
代码
- LogController.h
#include <logger.h>
namespace cs {
namespace logger {
class LogController {
private:
static bool isShowLog;
public:
static void setIsShowLog(bool isShow);
static bool getIsShowLog();
};
}
}
#define IS_SHOW_LOG (cs::logger::LogController::getIsShowLog() == true)
#define PRE_LOG(X) LOG(X)
#define LOG_IF(X) if (IS_SHOW_LOG) PRE_LOG(X)
- LogController.cpp
#include "LogController.h"
bool cs::logger::LogController::isShowLog = true;
void cs::logger::LogController::setIsShowLog(bool isShow) {
cs::logger::LogController::isShowLog = isShow;
}
bool cs::logger::LogController::getIsShowLog() {
return cs::logger::LogController::isShowLog;
}
使用
LOG(INFO) << "hello world";
// 替换为
LOG_IF(INFO) << "hello world";