为了减少二进制文件大小,我想在编译时删除日志(基于日志级别)。 目前的代码:
#define LOG(level,msg) log_write(level,msg)
它随处可用作LOG(ERROR,msg),LOG(INFO,msg)等。
我尝试隔离日志(不在日志记录位置修改)
#define LOG(level,msg) LOG_##level(level,mgs)
然后引入新的编译标志(LOG_LEVEL_x) 并在编译时根据所选的日志级别删除,如下所示:
#ifdef LOG_LEVEL_DEBUG
#define LOG_DEBUG(level,msg) log_write(level,msg)
#else
#define LOG_DEBUG(level,msg)
现在,问题是
#define LOG(level,msg) LOG_##level(level,msg)
给出如下错误 错误:粘贴" LOG _"和"("不提供有效的预处理令牌。
我该如何解决这个问题?没有修改所有日志记录位置的任何解决方案?