Sensor3/lib/patrix/log.cpp

64 lines
1.2 KiB
C++

#include <HardwareSerial.h>
#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;
}