diff --git a/components/logger/CMakeLists.txt b/components/logger/CMakeLists.txt new file mode 100644 index 0000000..eafb7ac --- /dev/null +++ b/components/logger/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register(INCLUDE_DIRS include) diff --git a/components/logger/include/logger.h b/components/logger/include/logger.h new file mode 100644 index 0000000..8090718 --- /dev/null +++ b/components/logger/include/logger.h @@ -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__) diff --git a/components/storage/CMakeLists.txt b/components/storage/CMakeLists.txt index 9863d29..2cb9d94 100644 --- a/components/storage/CMakeLists.txt +++ b/components/storage/CMakeLists.txt @@ -2,5 +2,5 @@ idf_component_register( SRCS "src/storage.c" INCLUDE_DIRS "include" REQUIRES joltwallet__littlefs - PRIV_REQUIRES vfs + PRIV_REQUIRES vfs logger ) diff --git a/components/storage/src/storage.c b/components/storage/src/storage.c index 478539a..5e40fc3 100644 --- a/components/storage/src/storage.c +++ b/components/storage/src/storage.c @@ -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", - LITTLEFS_MOUNT_POINT, total, used); + 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; diff --git a/components/web_server/CMakeLists.txt b/components/web_server/CMakeLists.txt index 88bb425..080d042 100644 --- a/components/web_server/CMakeLists.txt +++ b/components/web_server/CMakeLists.txt @@ -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 ) diff --git a/components/web_server/src/web_server.c b/components/web_server/src/web_server.c index 38b050c..9d25638 100644 --- a/components/web_server/src/web_server.c +++ b/components/web_server/src/web_server.c @@ -1,3 +1,5 @@ +#define LOG_TAG "WEBSRV" + #include "web_server.h" #include @@ -6,13 +8,11 @@ #include #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,11 +232,10 @@ 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, - esp_err_to_name(ret)); + LOGE("Failed to register handler %s: %s", uri_handler->uri, + esp_err_to_name(ret)); } return ret; diff --git a/components/web_server/src/wifi.c b/components/web_server/src/wifi.c index 3ca0516..222592f 100644 --- a/components/web_server/src/wifi.c +++ b/components/web_server/src/wifi.c @@ -1,14 +1,15 @@ +#define LOG_TAG "WIFI" + #include "wifi.h" #include #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"); }