From d2e9e8ebd6f4eaadb474c18639e3622770294221 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 4 Feb 2026 06:37:07 +0100 Subject: [PATCH] tweak --- esphome/components/logger/logger.cpp | 6 +----- esphome/components/logger/logger.h | 12 ++++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/esphome/components/logger/logger.cpp b/esphome/components/logger/logger.cpp index e8df5fbb16..51a29a63e5 100644 --- a/esphome/components/logger/logger.cpp +++ b/esphome/components/logger/logger.cpp @@ -129,11 +129,7 @@ void Logger::log_vprintf_(uint8_t level, const char *tag, int line, const __Flas if (level > this->level_for(tag) || global_recursion_guard_) return; - RecursionGuard guard(global_recursion_guard_); - LogBuffer buf(this->tx_buffer_, this->tx_buffer_at_, this->tx_buffer_size_); - this->format_log_to_buffer_with_terminator_P_(level, tag, line, format, args, buf); - this->notify_listeners_(level, tag); - this->write_log_buffer_to_console_(buf); + this->log_message_to_buffer_and_send_P_(global_recursion_guard_, level, tag, line, format, args); } #endif // USE_STORE_LOG_STR_IN_FLASH diff --git a/esphome/components/logger/logger.h b/esphome/components/logger/logger.h index 3912d769a0..87eaa957d1 100644 --- a/esphome/components/logger/logger.h +++ b/esphome/components/logger/logger.h @@ -475,6 +475,18 @@ class Logger : public Component { this->write_log_buffer_to_console_(buf); } +#ifdef USE_STORE_LOG_STR_IN_FLASH + // Helper to format and send a log message with flash format string (ESP8266) + inline void HOT log_message_to_buffer_and_send_P_(bool &recursion_guard, uint8_t level, const char *tag, int line, + const __FlashStringHelper *format, va_list args) { + RecursionGuard guard(recursion_guard); + LogBuffer buf(this->tx_buffer_, this->tx_buffer_at_, this->tx_buffer_size_); + this->format_log_to_buffer_with_terminator_P_(level, tag, line, format, args, buf); + this->notify_listeners_(level, tag); + this->write_log_buffer_to_console_(buf); + } +#endif + #ifdef USE_ESPHOME_TASK_LOG_BUFFER // Helper to format a pre-formatted message from the task log buffer and notify listeners // Used by process_messages_ to avoid code duplication between ESP32 and host platforms