1 #ifndef _LOG_H 2 #define _LOG_H 3 4 #define LOG_D(...) log_cb(LOG_DEBUG, __VA_ARGS__) 5 #define LOG_I(...) log_cb(LOG_INFO, __VA_ARGS__) 6 #define LOG_W(...) log_cb(LOG_WARNING, __VA_ARGS__) 7 #define LOG_E(...) log_cb(LOG_ERROR, __VA_ARGS__) 8 9 enum log_level { 10 LOG_DEBUG, 11 LOG_INFO, 12 LOG_WARNING, 13 LOG_ERROR, 14 NUM_LOG_LEVELS 15 }; 16 17 typedef void (*log_print_t)(enum log_level lvl, const char *fmt, ...); 18 19 extern log_print_t log_cb; 20 21 #endif 22 23