diff --git a/lib/inc/log.h b/lib/inc/log.h index 351579a..d3327df 100644 --- a/lib/inc/log.h +++ b/lib/inc/log.h @@ -18,9 +18,11 @@ #include #include #else + #include #include #include + #endif /* 输出日志等级 */ @@ -35,11 +37,18 @@ #define LOG_TIMER //#define LOG_FOR_MCU #define LOG_LINE_END_CRLF -//#define LOG_WITH_RUN_TIMER -#define LOG_RUN_TIMER_WITH_MS +#define LOG_WITH_RUN_TIMER #define LOG_OUTPUT_LVL LOG_LVL_INFO //////////////////////// +#ifdef LOG_WITH_RUN_TIMER +#define LOG_RUN_TIMER_FUN GetSysCnt32() +#define LOG_RUN_TIMER_FMT "-T(%lums)" +#else +#define LOG_RUN_TIMER_FUN 0 +#define LOG_RUN_TIMER_FMT "-T(%lu)" +#endif + #ifdef LOG_LINE_END_CRLF #define LOG_LINE_END "\r\n" #else @@ -65,18 +74,7 @@ #undef LOG_WITH_COLOR #endif -#ifdef LOG_WITH_RUN_TIMER -#ifdef LOG_RUN_TIMER_WITH_MS -#define LOG_RUN_TIMER_FUN System_GetTimeInterval()/1000 -#define LOG_RUN_TIMER_FMT "-T(%lums)" -#else -#define LOG_RUN_TIMER_FUN System_GetTimeInterval() -#define LOG_RUN_TIMER_FMT "-T(%luus)" -#endif -#else -#define LOG_RUN_TIMER_FUN 0 -#define LOG_RUN_TIMER_FMT "-T(%lu)" -#endif + #ifdef LOG_WITH_COLOR #define LOG_COLOR_RED "\033[31m" @@ -102,44 +100,72 @@ // 带时钟输出 #if defined(LOG_TIMER) +#ifdef LOG_WITH_RUN_TIMER #define LOGT(tag, fmt, ...) do{ printf(LOG_COLOR_BLUE "[" tag "]" LOG_RUN_TIMER_FMT ": " fmt LOG_END,LOG_RUN_TIMER_FUN, ##__VA_ARGS__); } while(0) #else +#define LOGT(tag, fmt, ...) do{ printf(LOG_COLOR_BLUE "[" tag "]: " fmt LOG_END, ##__VA_ARGS__); } while(0) +#endif +#else #define LOGT(fmt, ...) ((void)0) #endif // 等级输出 #if LOG_OUTPUT_LVL >= LOG_LVL_FATAL +#ifdef LOG_WITH_RUN_TIMER +#define LOGF(fmt, ...) do{ printf(LOG_COLOR_CYAN "[F]" LOG_RUN_TIMER_FMT ": %s: %s: %d: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); LOG_EXIT_PROGRAM(); } while(0) +#else #define LOGF(fmt, ...) do{ printf(LOG_COLOR_CYAN "[F]: %s: %s: %d: " fmt LOG_END, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); LOG_EXIT_PROGRAM(); } while(0) +#endif #else #define LOGF(fmt, ...) ((void)0) #endif #if LOG_OUTPUT_LVL >= LOG_LVL_ERROR +#ifdef LOG_WITH_RUN_TIMER +#define LOGE(fmt, ...) do{ printf(LOG_COLOR_RED "[E]" LOG_RUN_TIMER_FMT ": %s: %s: %d: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); } while(0) +#else #define LOGE(fmt, ...) do{ printf(LOG_COLOR_RED "[E]: %s: %s: %d: " fmt LOG_END, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); } while(0) +#endif #else #define LOGE(fmt, ...) ((void)0) #endif #if LOG_OUTPUT_LVL >= LOG_LVL_WARN +#ifdef LOG_WITH_RUN_TIMER +#define LOGW(fmt, ...) do{ printf(LOG_COLOR_CARMINE "[W]" LOG_RUN_TIMER_FMT ": %s: %s: %d: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); } while(0) +#else #define LOGW(fmt, ...) do{ printf(LOG_COLOR_CARMINE "[W]: %s: %s: %d: " fmt LOG_END, LOG_BASE_FILENAME, __func__, __LINE__, ##__VA_ARGS__); } while(0) +#endif #else #define LOGW(fmt, ...) ((void)0) #endif #if LOG_OUTPUT_LVL >= LOG_LVL_INFO +#ifdef LOG_WITH_RUN_TIMER +#define LOGI(fmt, ...) do{ printf(LOG_COLOR_YELLOW "[I]" LOG_RUN_TIMER_FMT ": %s: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#else #define LOGI(fmt, ...) do{ printf(LOG_COLOR_YELLOW "[I]: %s: " fmt LOG_END, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#endif #else #define LOGI(fmt, ...) ((void)0) #endif #if LOG_OUTPUT_LVL >= LOG_LVL_DEBUG +#ifdef LOG_WITH_RUN_TIMER +#define LOGD(fmt, ...) do{ printf(LOG_COLOR_DEFAULT "[D]" LOG_RUN_TIMER_FMT ": %s: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#else #define LOGD(fmt, ...) do{ printf(LOG_COLOR_DEFAULT "[D]: %s: " fmt LOG_END, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#endif #else #define LOGD(fmt, ...) ((void)0) #endif #if LOG_OUTPUT_LVL >= LOG_LVL_VERBOSE +#ifdef LOG_WITH_RUN_TIMER +#define LOGV(fmt, ...) do{ printf(LOG_COLOR_DEFAULT "[V]" LOG_RUN_TIMER_FMT ": %s: " fmt LOG_END,LOG_RUN_TIMER_FUN, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#else #define LOGV(fmt, ...) do{ printf(LOG_COLOR_DEFAULT "[V]: %s: " fmt LOG_END, LOG_BASE_FILENAME, ##__VA_ARGS__); } while(0) +#endif #else #define LOGV(fmt, ...) ((void)0) #endif