Added basic Logger with 4 modes.

This commit is contained in:
2025-01-26 18:02:39 +02:00
parent 7dd6f81264
commit 516eeab751
8 changed files with 126 additions and 107 deletions

37
vesper/logging.hpp Normal file
View File

@@ -0,0 +1,37 @@
// Define Log Levels
#define LOG_LEVEL_NONE 0 // No logs
#define LOG_LEVEL_ERROR 1 // Errors only
#define LOG_LEVEL_WARNING 2 // Warnings and errors
#define LOG_LEVEL_INFO 3 // Info, warnings, and errors
#define LOG_LEVEL_DEBUG 4 // All logs (full debugging)
// Set the active log level
#define ACTIVE_LOG_LEVEL LOG_LEVEL_DEBUG
// Check if the log level is enabled
#define LOG_LEVEL_ENABLED(level) (ACTIVE_LOG_LEVEL >= level)
// Macro to control logging based on the active level
#if LOG_LEVEL_ENABLED(LOG_LEVEL_ERROR)
#define LOG_ERROR(...) { Serial.print("[ERROR] - "); Serial.printf(__VA_ARGS__); Serial.println(); }
#else
#define LOG_ERROR(...) // No logging if level is not enabled
#endif
#if LOG_LEVEL_ENABLED(LOG_LEVEL_WARNING)
#define LOG_WARNING(...) { Serial.print("[WARNING] - "); Serial.printf(__VA_ARGS__); Serial.println(); }
#else
#define LOG_WARNING(...) // No logging if level is not enabled
#endif
#if LOG_LEVEL_ENABLED(LOG_LEVEL_INFO)
#define LOG_INFO(...) { Serial.print("[INFO] - "); Serial.printf(__VA_ARGS__); Serial.println(); }
#else
#define LOG_INFO(...) // No logging if level is not enabled
#endif
#if LOG_LEVEL_ENABLED(LOG_LEVEL_DEBUG)
#define LOG_DEBUG(...) { Serial.print("[DEBUG] - "); Serial.printf(__VA_ARGS__); Serial.println(); }
#else
#define LOG_DEBUG(...) // No logging if level is not enabled
#endif