1 #ifndef DEBUG_H 2 #define DEBUG_H 1 3 4 #define LOG_TRACE 10 5 #define LOG_ALL 7 6 #define LOG_ENTER_EXIT 6 7 #define LOG_DEBUG 5 8 #define LOG_INFO 4 9 #define LOG_WARN 3 10 #define LOG_ERROR 2 11 #define LOG_FATAL 1 12 #define LOG_NONE 0 13 14 #define TRACE_MODEM_IN 1 15 #define TRACE_MODEM_OUT 2 16 #define TRACE_IP_IN 4 17 #define TRACE_IP_OUT 8 18 19 #include <stdio.h> // needed for strerror 20 #include <string.h> // needed for strerror 21 #include <errno.h> // needed for errno 22 23 #if __STDC_VERSION__ < 199901L 24 # if __GNUC__ >= 2 25 # define __func__ __FUNCTION__ 26 # else 27 # define __func__ "<unknown>" 28 # endif 29 #endif 30 31 32 #define LOG(a,args...) do { \ 33 if(a <= log_level) { \ 34 log_start(a); \ 35 fprintf(log_file,args); \ 36 log_end(); \ 37 } \ 38 } while(0) 39 40 #define ELOG(a,args...) do { \ 41 if(a <= log_level) { \ 42 log_start(a); \ 43 fprintf(log_file,args); \ 44 fprintf(log_file," (%s)\n",strerror(errno)); \ 45 log_end(); \ 46 } \ 47 } while(0) 48 49 #define LOG_ENTER() LOG(LOG_ENTER_EXIT,"Entering %s function",__func__); 50 #define LOG_EXIT() LOG(LOG_ENTER_EXIT,"Exitting %s function",__func__); 51 int log_init(void); 52 void log_set_file(FILE* a); 53 void log_set_level(int a); 54 int log_get_trace_flags(); 55 void log_set_trace_flags(int a); 56 void log_trace(int type, unsigned char* line, int len); 57 void log_start(int level); 58 void log_end(); 59 60 #endif 61 #ifndef DEBUG_VARS 62 #define DEBUG_VARS 1 63 64 #include <stdio.h> 65 66 extern int log_level; 67 extern FILE* log_file; 68 69 #endif 70 71