60 lines
1.3 KiB
C++
60 lines
1.3 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 *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;
|
|
}
|