1 /* 2 * Copyright (C) 2015-2021 Alibaba Group Holding Limited 3 */ 4 5 #ifndef _DDKC_LOG_H_ 6 #define _DDKC_LOG_H_ 7 8 #include <unistd.h> 9 #include <sys/types.h> 10 11 /*!!!!!!!!!! ONLY loglevel and log format should be modified !!!!!!!!!*/ 12 extern int g_ddkc_log_level; 13 extern char ddkc_level_tag[]; 14 15 /*!!!!!!!!!! NEVER TRY to modify the following log defination !!!!!!!!!*/ 16 17 #define DDKC_LOG_LOUD 0 18 #define DDKC_LOG_DEBUG 1 19 #define DDKC_LOG_INFO 2 20 #define DDKC_LOG_WARN 3 21 #define DDKC_LOG_ERROR 4 22 23 #define ddkc_log(level, format, ...) do { \ 24 if (level >= g_ddkc_log_level) \ 25 printf("<%c><%d> [%s:%d]" format, ddkc_level_tag[level], getpid(), __FUNCTION__, __LINE__, ##__VA_ARGS__); \ 26 } while (0) 27 28 #define ddkc_loud(format, ...) ddkc_log(DDKC_LOG_LOUD, format, ##__VA_ARGS__) 29 #define ddkc_dbg(format, ...) ddkc_log(DDKC_LOG_DEBUG, format, ##__VA_ARGS__) 30 #define ddkc_info(format, ...) ddkc_log(DDKC_LOG_INFO, format, ##__VA_ARGS__) 31 #define ddkc_warn(format, ...) ddkc_log(DDKC_LOG_WARN, format, ##__VA_ARGS__) 32 #define ddkc_err(format, ...) ddkc_log(DDKC_LOG_ERROR, format, ##__VA_ARGS__) 33 #define ddkc_assert(cond, str, ...) \ 34 do { if (!(cond)) { printf("[ASSERT] %s/" str, __FUNCTION__, __VA_ARGS__); while (1); } } while (0) 35 36 #endif //_DDKC_LOG_H_ 37