#include #include "log.h" #include "mqtt.h" bool debugEnabled = false; void getDateTime(char *buffer, size_t size) { time_t now; time(&now); tm time{}; localtime_r(&now, &time); strftime(buffer, size, "%Y-%m-%d %H:%M:%S %z", &time); } void log(const char *level, const char *format, va_list vl) { char datetime[26]; getDateTime(datetime, sizeof datetime); char header[20]; snprintf(header, sizeof header, " | %-5s | ", level); char message[500]; vsnprintf(message, sizeof message, format, vl); Serial.print(datetime); Serial.print(header); Serial.print(message); Serial.println(); mqttPublishLog(datetime, header, message); } void debug(const char *format, ...) { if (!debugEnabled) { return; } va_list vl; va_start(vl, format); log("DEBUG", format, vl); va_end(vl); } void info(const char *format, ...) { va_list vl; va_start(vl, format); log("INFO", format, vl); va_end(vl); } void error(const char *format, ...) { va_list vl; va_start(vl, format); log("ERROR", format, vl); va_end(vl); } void setDebugEnabled(const bool enabled) { debugEnabled = enabled; } bool isDebugEnabled() { return debugEnabled; }