应用_Printf Dbug 终极奥义



#include

#define BUG_POWER
#ifdef BUG_POWER

#define ENTRY   5
#define DEBUG   4
#define INFO    3
#define WARN    2
#define ERROR   1
#define PRINT_LEVEL ENTRY

#define pri(Level, ...)                                   \
        do{                                                \
            if(Level <=PRINT_LEVEL){                    \
                printf( "["#Level"] " __VA_ARGS__ );    \
            }                                            \
        }while(0);
        
#define pri_err(...)    pri(ERROR,##__VA_ARGS__)
#define pri_warn(...)   pri(WARN, ##__VA_ARGS__)
#define pri_info(...)   pri(INFO, ##__VA_ARGS__)
#define pri_bug(...)    pri(DEBUG,##__VA_ARGS__)
#define pri_entry(inout) pri(ENTRY, "%s() %s", __func__, #inout)        

#else

#define pri_err(...)      
#define pri_warn(...)     
#define pri_info(...)     
#define pri_bug(...)      
#define pri_entry(inout)  

#endif


int main(void)
{
    pri_bug ("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!\n", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
    pri_info("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!\n", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
    pri_warn("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!\n", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);
    pri_err ("FILE:%s FUN:%s LINE:%d DATE:%s TIME:%s  text ok!\n", __FILE__,  __FUNCTION__, __LINE__, __DATE__, __TIME__);    

    return 0;
}

相关