From c40d07d3774e0992b9a2232284fd7b170446cb56 Mon Sep 17 00:00:00 2001 From: Tomasz Duda Date: Sun, 14 Jan 2024 17:55:29 +0100 Subject: [PATCH] add logging task name --- esphome/components/logger/logger.cpp | 9 ++++++++- esphome/components/logger/logger.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/esphome/components/logger/logger.cpp b/esphome/components/logger/logger.cpp index 66b7b669d1..256ed98112 100644 --- a/esphome/components/logger/logger.cpp +++ b/esphome/components/logger/logger.cpp @@ -64,7 +64,13 @@ void Logger::write_header_(int level, const char *tag, int line) { const char *color = LOG_LEVEL_COLORS[level]; const char *letter = LOG_LEVEL_LETTERS[level]; - this->printf_to_buffer_("%s[%s][%s:%03u]: ", color, letter, tag, line); + void *current_task = xTaskGetCurrentTaskHandle(); + SEGGER_RTT_printf(0," __VA_ARGS__\n"); + if (current_task == main_task) { + this->printf_to_buffer_("%s[%s][%s:%03u]: ", color, letter, tag, line); + } else { + this->printf_to_buffer_("%s[%s][%s:%03u]%s[%s]%s: ", color, letter, tag, line, ESPHOME_LOG_BOLD(ESPHOME_LOG_COLOR_RED), pcTaskGetName(current_task), color); + } } void HOT Logger::log_vprintf_(int level, const char *tag, int line, const char *format, va_list args) { // NOLINT @@ -225,6 +231,7 @@ void HOT Logger::log_message_(int level, const char *tag, int offset) { Logger::Logger(uint32_t baud_rate, size_t tx_buffer_size) : baud_rate_(baud_rate), tx_buffer_size_(tx_buffer_size) { // add 1 to buffer size for null terminator this->tx_buffer_ = new char[this->tx_buffer_size_ + 1]; // NOLINT + this->main_task = xTaskGetCurrentTaskHandle(); } #ifndef USE_LIBRETINY diff --git a/esphome/components/logger/logger.h b/esphome/components/logger/logger.h index 5123a31add..2810dd81a3 100644 --- a/esphome/components/logger/logger.h +++ b/esphome/components/logger/logger.h @@ -187,6 +187,7 @@ class Logger : public Component { CallbackManager log_callback_{}; /// Prevents recursive log calls, if true a log message is already being processed. bool recursion_guard_ = false; + void *main_task = nullptr; }; extern Logger *global_logger; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)