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_SERIAL_IN 4 17 #define TRACE_SERIAL_OUT 8 18 #define TRACE_IP_IN 16 19 #define TRACE_IP_OUT 32 20 21 #include // needed for strerror 22 #include // needed for strerror 23 #include // needed for errno 24 25 #if __STDC_VERSION__ < 199901L 26 # if __GNUC__ >= 2 27 # define __func__ __FUNCTION__ 28 # else 29 # define __func__ "" 30 # endif 31 #endif 32 33 #define LOG(a,args...) do { \ 34 if(a <= log_level) { \ 35 log_start(a); \ 36 fprintf(log_file,args); \ 37 log_end(); \ 38 } \ 39 } while(0) 40 41 #define ELOG(a,args...) do { \ 42 if(a <= log_level) { \ 43 log_start(a); \ 44 fprintf(log_file,args); \ 45 fprintf(log_file," (%s)\n",strerror(errno)); \ 46 log_end(); \ 47 } \ 48 } while(0) 49 50 #define LOG_ENTER() LOG(LOG_ENTER_EXIT,"Entering %s function",__func__); 51 #define LOG_EXIT() LOG(LOG_ENTER_EXIT,"Exitting %s function",__func__); 52 int log_init(void); 53 void log_set_file(FILE *a); 54 void log_set_level(int a); 55 int log_get_trace_flags(); 56 void log_set_trace_flags(int a); 57 void log_trace(int type, unsigned char *line, int len); 58 void log_start(int level); 59 void log_end(); 60 61 #endif 62 #ifndef DEBUG_VARS 63 #define DEBUG_VARS 1 64 65 #include 66 67 extern int log_level; 68 extern FILE *log_file; 69 70 #endif