#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 *module, const char *format, va_list vl) { char datetime[26]; getDateTime(datetime, sizeof datetime); char header[50]; snprintf(header, sizeof header, " | %-5s | %-15s | ", level, module); char message[500]; vsnprintf(message, sizeof message, format, vl); const size_t len = Serial.print(datetime) + Serial.print(header) + Serial.print(message) + Serial.println(); mqttPublishLog(len, datetime, header, message); } void debug(const char *module, const char *format, ...) { if (!debugEnabled) { return; } va_list vl; va_start(vl, format); log("DEBUG", module, format, vl); va_end(vl); } void info(const char *module, const char *format, ...) { va_list vl; va_start(vl, format); log("INFO", module, format, vl); va_end(vl); } void error(const char *module, const char *format, ...) { va_list vl; va_start(vl, format); log("ERROR", module, format, vl); va_end(vl); } void setDebugEnabled(const bool enabled) { debugEnabled = enabled; } bool isDebugEnabled() { return debugEnabled; }