#ifndef _Shark_Logger_h__ #define _Shark_Logger_h__ #include #define L_disable 0 #define L_debug 1 #define L_warning 2 #define L_error 3 #define LEVEL_MASK 0x03 #define mod_bit_start(mod) (mod*2) /* define the module which need debug info here * at most is 32 modules (index from 0 - 31) */ #define MOD_IO 0 //for io state #define MOD_HEALTH 1 #define MOD_MEASURE 2 #define MOD_STATE 3 #define MOD_SYSTEM 4 extern void set_log_level(int mod, int l); extern void log_debug(int mod, char *fmt, ...); extern void log_warning(int mod, char *fmt, ...); extern void log_error(int mod, char *fmt, ...); /* logger functions */ #define io_debug(fmt, args...) log_debug(MOD_IO, "[IO:D]"fmt, ##args) #define io_warning(fmt, args...) log_warning(MOD_IO, "[IO:W]"fmt, ##args) #define io_error(fmt, args...) log_error(MOD_IO, "[IO:E]"fmt, ##args) #define health_debug(fmt, args...) log_debug(MOD_HEALTH, "[HEALTH:D]"fmt, ##args) #define health_warning(fmt, args...) log_warning(MOD_HEALTH, "[HEALTH:W]"fmt, ##args) #define health_error(fmt, args...) log_error(MOD_HEALTH, "[HEALTH:E]"fmt, ##args) #define measure_debug(fmt, args...) log_debug(MOD_MEASURE, "[MEASURE:D]"fmt, ##args) #define measure_warning(fmt, args...) log_warning(MOD_MEASURE, "[MEASURE:W]"fmt, ##args) #define measure_error(fmt, args...) log_error(MOD_MEASURE, "[MEASURE:E]"fmt, ##args) #define state_debug(fmt, args...) log_debug(MOD_STATE, "[STATE:D]"fmt, ##args) #define state_warning(fmt, args...) log_warning(MOD_STATE, "[STATE:W]"fmt, ##args) #define state_error(fmt, args...) log_error(MOD_STATE, fmt, "[STATE:E]"##args) #define sys_debug(fmt, args...) log_debug(MOD_SYSTEM, fmt, "[SYS:D]"##args) #define sys_warning(fmt, args...) log_warning(MOD_SYSTEM, "[SYS:W]"fmt, ##args) #define sys_error(fmt, args...) log_error(MOD_SYSTEM, fmt, "[SYS:E]"##args) #endif /* _Shark_Logger_h__ */