Go to the documentation of this file. 8 (strrchr(__FILE__, '/') ? \ 9 strrchr(__FILE__, '/') + 1 : __FILE__) 11 #define clean_errno() \ 12 (errno == 0 ? "None" : strerror(errno)) 14 #define __log_debug_color(X) "[\x1b[1;36m" X "\x1b[0;39m]" 15 #define __log_error_color(X) "[\x1b[1;31m" X "\x1b[0;39m]" 16 #define __log_warn_color(X) "[\x1b[1;33m" X "\x1b[0;39m]" 17 #define __log_info_color(X) "[\x1b[32m" X "\x1b[0;39m]" 18 #define __log_func_color(X) "\x1b[33m" X "\x1b[39m" 19 #define __log_args_color(X) "\x1b[94m" X "\x1b[39m" 20 #define __log_errno_color(X) "\x1b[35m" X "\x1b[39m" 23 #if !defined(EVHTP_DEBUG) 25 #define log_debug(M, ...) 27 #define log_debug(M, ...) \ 28 fprintf(stderr, __log_debug_color("DEBUG") " " \ 29 __log_func_color("%s:%-9d") \ 32 __FILENAME__, __LINE__, ## __VA_ARGS__) 35 #define log_error(M, ...) \ 36 fprintf(stderr, __log_error_color("ERROR") " " \ 37 __log_func_color("%s:%-9d") \ 40 __log_errno_color("(errno: %s)") \ 42 __FILENAME__, __LINE__, ## __VA_ARGS__, clean_errno()) 45 #define log_warn(M, ...) \ 46 fprintf(stderr, __log_warn_color("WARN") " " \ 47 __log_func_color("%s:%-9d") \ 50 __log_errno_color("(errno: %s)") \ 52 __FILENAME__, __LINE__, ## __VA_ARGS__, clean_errno()) 54 #define log_info(M, ...) \ 55 fprintf(stderr, __log_info_color("INFO") " " \ 56 __log_func_color("%4s:%-9d") \ 57 __log_args_color(M) "\n", \ 58 __FILENAME__, __LINE__, ## __VA_ARGS__)