#pragmaonce#includestdarg.h /*va_start*/#includeiostream /*vsprintf*/enumLOG_LEVEL{ LOG_LEVEL_DEBUG, LOG_LEVEL_INFO, LOG_LEVEL_WARN, LOG_LEVEL_ERROR, LOG_LEVEL_FATAL};voidprint_log(LOG_LEVELlevel,constchar*func_name,intline,constchar*fmt,...){ va_listap; intcount; switch(level) { caseLOG_LEVEL_DEBUG: fprintf(stdout,[DEBUG]); break; caseLOG_LEVEL_INFO: fprintf(stdout,[INFO]); break; caseLOG_LEVEL_WARN: fprintf(stdout,[WARNING]); break; caseLOG_LEVEL_ERROR: fprintf(stdout,[ERROR]); break; default: fprintf(stdout,[INFO]); break; } fprintf(stdout,[%sline:%d],func_name,line); va_start(ap,fmt); count=vfprintf(stdout,fmt,ap); fprintf(stdout,\n); fflush(stdout); va_end(ap);}#defineLOG_DEBUG(...)print_log(LOG_LEVEL_DEBUG,__func__,__LINE__,##__VA_ARGS__)#defineLOG_INFO(...)print_log(LOG_LEVEL_INFO,__func__,__LINE__,##__VA_ARGS__)#defineLOG_WARN(...)print_log(LOG_LEVEL_WARN,__func__,__LINE__,##__VA_ARGS__)#defineLOG_ERROR(...)print_log(LOG_LEVEL_ERROR,__func__,__LINE__,##__VA_ARGS__)#defineLOG_FATAL(...)print_log(LOG_LEVEL_FATAL,__func__,__LINE__,##__VA_ARGS__)白癜风吃什么药最好北京较好的白癜风医院