First commit

This commit is contained in:
2025-12-28 01:18:55 +00:00
commit c8c2f86087
5 changed files with 153 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
# EmbESLogger
Simple logger for my ESP32 projects. Currently only being used on CDashDisplay.
+20
View File
@@ -0,0 +1,20 @@
{
"name": "embeslogger",
"version": "0.1.0",
"description": "Simple Logging utilities",
"keywords": "ESP32-8048S043, ESP32, curses",
"repository":
{
"type": "git",
"url": "https://github.com/ESilva15/embeslogger"
},
"authors":
[
{
"name": "Eduardo Silva",
"maintainer": true
}
],
"frameworks": "*",
"platforms": "*"
}
View File
+49
View File
@@ -0,0 +1,49 @@
#include "logger.h"
#include "HardwareSerial.h"
namespace Logger {
inline HardwareSerial& out() {
return Serial2;
}
void WritePrefix(LogLevel lvl) {
switch (lvl) {
case Error: out().print(F("\r[ERR] ")); break;
case Warn: out().print(F("\r[WRN] ")); break;
case Info: out().print(F("\r[INF] ")); break;
case Debug: out().print(F("\r[DBG] ")); break;
case Trace: out().print(F("\r[TRC] ")); break;
}
}
void VPrintf(const char* fmt, va_list args) {
char buffer[128];
vsnprintf(buffer, sizeof(buffer), fmt, args);
out().print(buffer);
}
void Printf(const char* fmt, ...) {
va_list args;
va_start(args, fmt);
VPrintf(fmt, args);
va_end(args);
}
void Printf(const __FlashStringHelper* fmt, ...) {
char buffer[128];
va_list args;
va_start(args, fmt);
vsnprintf_P(buffer, sizeof(buffer),
reinterpret_cast<const char*>(fmt), args);
va_end(args);
out().print(buffer);
}
void Initialize(int8_t rx, int8_t tx) {
Serial2.begin(115200, SERIAL_8N1, rx, tx);
Serial2.flush();
}
};
+82
View File
@@ -0,0 +1,82 @@
#ifndef __LOGGER__
#define __LOGGER__
#include <Arduino.h>
#include <cstdint>
#define LOG_LEVEL_ERROR 0
#define LOG_LEVEL_WARN 1
#define LOG_LEVEL_INFO 2
#define LOG_LEVEL_DEBUG 3
#define LOG_LEVEL_TRACE 4
#define LOG_ENABLED(lvl) ((lvl) <= LOG_LEVEL)
#if LOG_ENABLED(LOG_LEVEL_ERROR)
#define LOG_ERROR(fmt, ...) \
do { \
Logger::WritePrefix(Logger::Error); \
Logger::Printf(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define LOG_ERROR(...) do {} while (0)
#endif
#if LOG_ENABLED(LOG_LEVEL_WARN)
#define LOG_WARN(fmt, ...) \
do { \
Logger::WritePrefix(Logger::Warn); \
Logger::Printf(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define LOG_WARN(...) do {} while (0)
#endif
#if LOG_ENABLED(LOG_LEVEL_INFO)
#define LOG_INFO(fmt, ...) \
do { \
Logger::WritePrefix(Logger::Info); \
Logger::Printf(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define LOG_INFO(...) do {} while (0)
#endif
#if LOG_ENABLED(LOG_LEVEL_DEBUG)
#define LOG_DEBUG(fmt, ...) \
do { \
Logger::WritePrefix(Logger::Debug); \
Logger::Printf(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define LOG_DEBUG(...) do {} while (0)
#endif
#if LOG_ENABLED(LOG_LEVEL_TRACE)
#define LOG_TRACE(fmt, ...) \
do { \
Logger::WritePrefix(Logger::Trace); \
Logger::Printf(fmt, ##__VA_ARGS__); \
} while (0)
#else
#define LOG_TRACE(...) do {} while (0)
#endif
namespace Logger {
enum LogLevel : uint8_t {
Error = LOG_LEVEL_ERROR,
Warn = LOG_LEVEL_WARN,
Info = LOG_LEVEL_INFO,
Debug = LOG_LEVEL_DEBUG,
Trace = LOG_LEVEL_TRACE
};
void Initialize(int8_t rx, int8_t tx);
void WritePrefix(LogLevel lvl);
void VPrintf(const char* fmt, va_list args);
void Printf(const char* fmt, ...);
void Printf(const __FlashStringHelper* fmt, ...);
};
#endif