#include "log.h" #include #include #include "clock.h" auto logLevel = DEBUG; void log(const LogLevel level, const char *format, const va_list args) { if (level > logLevel) { return; } Serial.print(getClockStr()); switch (level) { case ERROR: Serial.print(" [ERROR] "); break; case WARN: Serial.print(" [WARN ] "); break; case INFO: Serial.print(" [INFO ] "); break; case DEBUG: Serial.print(" [DEBUG] "); break; } char message[256]; vsnprintf(message, sizeof message, format, args); Serial.print(message); Serial.print("\n"); yield(); } void log(const LogLevel level, const char *format, ...) { va_list args; va_start(args, format); log(level, format, args); va_end(args); } void error(const char *format, ...) { va_list args; va_start(args, format); log(ERROR, format, args); va_end(args); } void warn(const char *format, ...) { va_list args; va_start(args, format); log(WARN, format, args); va_end(args); } void info(const char *format, ...) { va_list args; va_start(args, format); log(INFO, format, args); va_end(args); } void debug(const char *format, ...) { va_list args; va_start(args, format); log(DEBUG, format, args); va_end(args); }