#include #include #include "test_log.h" #include "rtc.h" #include "sundry.h" static long long default_get_sys_time_ms(void) { long long time_ms = 0; time_ms = BCD_2_HEX_U8(calendar_g.Hour) * 60 * 60 * 1000 + BCD_2_HEX_U8(calendar_g.Minute) * 60 * 1000 + BCD_2_HEX_U8(calendar_g.Second) * 1000; return time_ms; } static get_sys_time_ms_def s_get_sys_time_ms = default_get_sys_time_ms; void log_time_register(get_sys_time_ms_def p_get_sys_time_ms) { s_get_sys_time_ms = p_get_sys_time_ms; } void log_print(enum log_debug_type debug_type, const char *file, int line, const char *func, const char* fmt, ...) { #if LOG_PRINT_OPEN == 1 va_list ap; char buf[LOG_BUF_SIZE] = {0}; long long time = s_get_sys_time_ms(); va_start(ap, fmt); vsnprintf(buf, sizeof(buf), fmt, ap); va_end(ap); switch(debug_type) { case DEBUG_NORMAL: printf("<%lld ms>[%s:%d %s] %s", time, file, line, func, buf); break; case DEBUG_WARNING: printf("\033[31m<%lld ms>[%s:%d %s] %s\033[0m", time, file, line, func, buf); break; case DEBUG_ERROR: printf("\033[32m<%lld ms>[%s:%d %s] %s\033[0m", time, file, line, func, buf); break; default:break; } #endif }