feat(logger): add logging macros for consistent logging across components

This commit is contained in:
HendrikRauh 2026-03-07 21:02:31 +01:00
parent 9a11453fbc
commit a2d51540b7
7 changed files with 77 additions and 33 deletions

View file

@ -0,0 +1 @@
idf_component_register(INCLUDE_DIRS include)

View file

@ -0,0 +1,43 @@
/**
* @file logger.h
* @brief Project-wide logging macros based on ESP-IDF's logging library.
*
* This header provides a set of simple logging macros (LOGE, LOGW, LOGI, etc.)
* that wrap the underlying ESP-IDF logging functions (esp_log_e, esp_log_w,
* etc.).
*
* @section usage Usage
* To use these macros, a `LOG_TAG` should be defined before including this
* header. The `LOG_TAG` is a string that identifies the source of the log
* messages, typically the component or file name. If `LOG_TAG` is not defined,
* a default tag "CHAOS" will be used.
*
* @example
* #define LOG_TAG "MY_COMPONENT"
* #include "logger.h"
*
* void my_function() {
* LOGI("This is an informational message.");
* LOGE("This is an error message with a value: %d", 42);
* }
*/
#pragma once
#include "esp_log.h"
#ifndef LOG_TAG
#define LOG_TAG "CHAOS"
#endif
/** @brief Log a message at Error level. */
#define LOGE(...) ESP_LOGE(LOG_TAG, __VA_ARGS__)
/** @brief Log a message at Warning level. */
#define LOGW(...) ESP_LOGW(LOG_TAG, __VA_ARGS__)
/** @brief Log a message at Info level. */
#define LOGI(...) ESP_LOGI(LOG_TAG, __VA_ARGS__)
/** @brief Log a message at Debug level. */
#define LOGD(...) ESP_LOGD(LOG_TAG, __VA_ARGS__)
/** @brief Log a message at Verbose level. */
#define LOGV(...) ESP_LOGV(LOG_TAG, __VA_ARGS__)

View file

@ -2,5 +2,5 @@ idf_component_register(
SRCS "src/storage.c"
INCLUDE_DIRS "include"
REQUIRES joltwallet__littlefs
PRIV_REQUIRES vfs
PRIV_REQUIRES vfs logger
)

View file

@ -1,10 +1,10 @@
#define LOG_TAG "STORE"
#include "storage.h"
#include "esp_littlefs.h"
#include "esp_log.h"
#include "esp_vfs.h"
#include "logger.h"
static const char *TAG = "STORAGE";
static const char *LITTLEFS_MOUNT_POINT = "/data";
esp_err_t storage_init(void) {
@ -19,11 +19,11 @@ esp_err_t storage_init(void) {
if (ret != ESP_OK) {
if (ret == ESP_FAIL) {
ESP_LOGE(TAG, "Failed to mount LittleFS or format filesystem");
LOGE("Failed to mount LittleFS or format filesystem");
} else if (ret == ESP_ERR_INVALID_STATE) {
ESP_LOGE(TAG, "ESP_ERR_INVALID_STATE");
LOGE("ESP_ERR_INVALID_STATE");
} else {
ESP_LOGE(TAG, "Failed to initialize LittleFS: %s", esp_err_to_name(ret));
LOGE("Failed to initialize LittleFS: %s", esp_err_to_name(ret));
}
return ret;
}
@ -31,10 +31,10 @@ esp_err_t storage_init(void) {
size_t total = 0, used = 0;
ret = esp_littlefs_info(conf.partition_label, &total, &used);
if (ret == ESP_OK) {
ESP_LOGI(TAG, "LittleFS mounted at %s. Total: %d bytes, Used: %d bytes",
LOGI("LittleFS mounted at %s. Total: %d bytes, Used: %d bytes",
LITTLEFS_MOUNT_POINT, total, used);
} else {
ESP_LOGE(TAG, "Failed to get LittleFS information");
LOGE("Failed to get LittleFS information");
}
return ESP_OK;

View file

@ -3,5 +3,5 @@ idf_component_register(
"src/wifi.c"
INCLUDE_DIRS "include"
REQUIRES esp_http_server storage
PRIV_REQUIRES freertos esp_wifi esp_event esp_netif nvs_flash
PRIV_REQUIRES freertos esp_wifi esp_event esp_netif nvs_flash logger
)

View file

@ -1,3 +1,5 @@
#define LOG_TAG "WEBSRV"
#include "web_server.h"
#include <ctype.h>
@ -6,13 +8,11 @@
#include <string.h>
#include "esp_err.h"
#include "esp_log.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "logger.h"
#include "storage.h"
static const char *TAG = "WEBSERVER";
// Default configuration values
#define WEBSERVER_DEFAULT_PORT 80
#define WEBSERVER_DEFAULT_MAX_HANDLERS 32
@ -77,7 +77,7 @@ static esp_err_t static_file_handler(httpd_req_t *req) {
FILE *f = fopen(filepath, "r");
if (!f) {
ESP_LOGW(TAG, "File not found: %s", filepath);
LOGW("File not found: %s", filepath);
httpd_resp_send_404(req);
return ESP_OK;
}
@ -91,7 +91,7 @@ static esp_err_t static_file_handler(httpd_req_t *req) {
size_t read_len;
while ((read_len = fread(buf, 1, sizeof(buf), f)) > 0) {
if (httpd_resp_send_chunk(req, buf, read_len) != ESP_OK) {
ESP_LOGW(TAG, "Failed to send data chunk for %s", filepath);
LOGW("Failed to send data chunk for %s", filepath);
break;
}
}
@ -116,27 +116,27 @@ static esp_err_t health_check_handler(httpd_req_t *req) {
*/
static void webserver_task(void *arg) {
(void)arg; // Unused parameter
ESP_LOGI(TAG, "Web server task started");
LOGI("Web server task started");
// Keep task alive - the server runs in the background
while (s_server_handle != NULL) {
vTaskDelay(pdMS_TO_TICKS(10000)); // 10 second check interval
}
ESP_LOGI(TAG, "Web server task ending");
LOGI("Web server task ending");
vTaskDelete(NULL);
}
httpd_handle_t webserver_start(const webserver_config_t *config) {
if (s_server_handle != NULL) {
ESP_LOGW(TAG, "Web server already running");
LOGW("Web server already running");
return s_server_handle;
}
// Initialize LittleFS
esp_err_t ret = storage_init();
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Failed to initialize storage");
LOGE("Failed to initialize storage");
return NULL;
}
@ -163,12 +163,12 @@ httpd_handle_t webserver_start(const webserver_config_t *config) {
// Start HTTP server
ret = httpd_start(&s_server_handle, &http_config);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Failed to start HTTP server: %s", esp_err_to_name(ret));
LOGE("Failed to start HTTP server: %s", esp_err_to_name(ret));
s_server_handle = NULL;
return NULL;
}
ESP_LOGI(TAG, "HTTP server started on port %d", port);
LOGI("HTTP server started on port %d", port);
// Register default handlers
// Health check endpoint
@ -197,13 +197,13 @@ httpd_handle_t webserver_start(const webserver_config_t *config) {
&s_server_task_handle);
if (task_ret != pdPASS) {
ESP_LOGE(TAG, "Failed to create web server task");
LOGE("Failed to create web server task");
httpd_stop(s_server_handle);
s_server_handle = NULL;
return NULL;
}
ESP_LOGI(TAG, "Web server initialized successfully");
LOGI("Web server initialized successfully");
return s_server_handle;
}
@ -221,7 +221,7 @@ void webserver_stop(httpd_handle_t server) {
s_server_task_handle = NULL;
}
ESP_LOGI(TAG, "Web server stopped");
LOGI("Web server stopped");
}
esp_err_t webserver_register_handler(httpd_handle_t server,
@ -232,10 +232,9 @@ esp_err_t webserver_register_handler(httpd_handle_t server,
esp_err_t ret = httpd_register_uri_handler(server, uri_handler);
if (ret == ESP_OK) {
ESP_LOGI(TAG, "Registered handler: %s [%d]", uri_handler->uri,
uri_handler->method);
LOGI("Registered handler: %s [%d]", uri_handler->uri, uri_handler->method);
} else {
ESP_LOGE(TAG, "Failed to register handler %s: %s", uri_handler->uri,
LOGE("Failed to register handler %s: %s", uri_handler->uri,
esp_err_to_name(ret));
}

View file

@ -1,14 +1,15 @@
#define LOG_TAG "WIFI"
#include "wifi.h"
#include <string.h>
#include "esp_event.h"
#include "esp_log.h"
#include "esp_netif.h"
#include "esp_wifi.h"
#include "logger.h"
#include "nvs_flash.h"
static const char *TAG = "WIFI";
static bool s_wifi_started = false;
esp_err_t wifi_start_ap(const char *ssid, const char *password, uint8_t channel,
@ -69,7 +70,7 @@ esp_err_t wifi_start_ap(const char *ssid, const char *password, uint8_t channel,
ESP_ERROR_CHECK(esp_wifi_start());
s_wifi_started = true;
ESP_LOGI(TAG, "WiFi AP started: SSID=%s channel=%u", ssid, channel);
LOGI("WiFi AP started: SSID=%s channel=%u", ssid, channel);
return ESP_OK;
}
@ -81,5 +82,5 @@ void wifi_stop_ap(void) {
esp_wifi_stop();
esp_wifi_deinit();
s_wifi_started = false;
ESP_LOGI(TAG, "WiFi AP stopped");
LOGI("WiFi AP stopped");
}