00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef LOGGER_H
00027 #define LOGGER_H
00028
00038 enum
00039 {
00040 HAL_LOGPRI_TRACE = (1<<0),
00041 HAL_LOGPRI_DEBUG = (1<<1),
00042 HAL_LOGPRI_INFO = (1<<2),
00043 HAL_LOGPRI_WARNING = (1<<3),
00044 HAL_LOGPRI_ERROR = (1<<4)
00045 };
00046
00047 void logger_init();
00048
00049 void logger_setup(int priority, const char* file, int line,
00050 const char* function);
00051
00052 void logger_emit(const char* format,...);
00053
00054 #ifdef ENABLE_VERBOSE_MODE
00055
00056
00057
00059 #define HAL_TRACE(expr) do {logger_setup(HAL_LOGPRI_TRACE, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00060
00062 #define HAL_DEBUG(expr) do {logger_setup(HAL_LOGPRI_DEBUG, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00063
00065 #define HAL_INFO(expr) do {logger_setup(HAL_LOGPRI_INFO, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00066
00068 #define HAL_WARNING(expr) do {logger_setup(HAL_LOGPRI_WARNING, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00069
00071 #define HAL_ERROR(expr) do {logger_setup(HAL_LOGPRI_ERROR, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00072
00074 #define DIE(expr) do {printf("*** [DIE] %s:%s():%d : ", __FILE__, __FUNCTION__, __LINE__); printf expr; printf("\n"); exit(1); } while(0)
00075
00076 #else
00077
00078
00079
00080 #define HAL_TRACE(expr) do {;} while(0)
00081 #define HAL_DEBUG(expr) do {;} while(0)
00082 #define HAL_INFO(expr) do {;} while(0)
00083
00084 #define HAL_WARNING(expr) do {logger_setup(HAL_LOGPRI_WARNING, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00085
00086 #define HAL_ERROR(expr) do {logger_setup(HAL_LOGPRI_ERROR, __FILE__, __LINE__, __FUNCTION__); logger_emit expr; } while(0)
00087
00088 #define DIE(expr) do {printf("*** [DIE] %s:%s():%d : ", __FILE__, __FUNCTION__, __LINE__); printf expr; printf("\n"); exit(1); } while(0)
00089
00090
00091 #endif
00092
00095 #endif