在编写代码的时候,为了调试bug,我们会输出很多日志信息,当产品要发布的时候,我们可以把日志信息去除。最好的办法就是

//
// Created by fuhong on 20-12-10.
//
#include <iostream>
#include <stdio.h>
#include <string.h>

#define DEBUG

#ifdef DEBUG
#define filename(x) strrchr(x,'/')?strrchr(x,'/')+1:x

#define LOG(frm, args...) {\
    printf("\033[0;33m[%s : %s : %d] \033[0m",filename(__FILE__),__func__,__LINE__);\
    printf(frm,##args);\
    printf("\n");\
}

#else

#define LOG(frm, args...)

#endif


int main() {
    LOG("test");
    return 0;
}

CMakeLists.txt

cmake_minimum_required (VERSION 2.8)

project (Demo1)

#if(DEFINED DEBUG)
#    message("DEBUG_LOG is defined")
#else()
#    message("DEBUG_LOG is not defined")
#endif()

option(DEBUG "ON for debug or OFF for release" ON)
IF(DEBUG)
    message("DEBUG is defined")
    add_definitions(-DDEBUG)
else()
    message("DEBUG is not defined")
ENDIF()

add_executable(log log.cpp)