mirror of
https://github.com/esphome/esphome.git
synced 2025-10-24 12:43:51 +01:00
[nrf52] fix task names in logs (#11367)
This commit is contained in:
@@ -68,6 +68,9 @@ static constexpr char LOG_LEVEL_LETTER_CHARS[] = {
|
|||||||
// Maximum header size: 35 bytes fixed + 32 bytes tag + 16 bytes thread name = 83 bytes (45 byte safety margin)
|
// Maximum header size: 35 bytes fixed + 32 bytes tag + 16 bytes thread name = 83 bytes (45 byte safety margin)
|
||||||
static constexpr uint16_t MAX_HEADER_SIZE = 128;
|
static constexpr uint16_t MAX_HEADER_SIZE = 128;
|
||||||
|
|
||||||
|
// "0x" + 2 hex digits per byte + '\0'
|
||||||
|
static constexpr size_t MAX_POINTER_REPRESENTATION = 2 + sizeof(void *) * 2 + 1;
|
||||||
|
|
||||||
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
#if defined(USE_ESP32) || defined(USE_ESP8266) || defined(USE_RP2040) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
||||||
/** Enum for logging UART selection
|
/** Enum for logging UART selection
|
||||||
*
|
*
|
||||||
@@ -177,8 +180,11 @@ class Logger : public Component {
|
|||||||
inline void HOT format_log_to_buffer_with_terminator_(uint8_t level, const char *tag, int line, const char *format,
|
inline void HOT format_log_to_buffer_with_terminator_(uint8_t level, const char *tag, int line, const char *format,
|
||||||
va_list args, char *buffer, uint16_t *buffer_at,
|
va_list args, char *buffer, uint16_t *buffer_at,
|
||||||
uint16_t buffer_size) {
|
uint16_t buffer_size) {
|
||||||
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
#if defined(USE_ESP32) || defined(USE_LIBRETINY)
|
||||||
this->write_header_to_buffer_(level, tag, line, this->get_thread_name_(), buffer, buffer_at, buffer_size);
|
this->write_header_to_buffer_(level, tag, line, this->get_thread_name_(), buffer, buffer_at, buffer_size);
|
||||||
|
#elif defined(USE_ZEPHYR)
|
||||||
|
char buff[MAX_POINTER_REPRESENTATION];
|
||||||
|
this->write_header_to_buffer_(level, tag, line, this->get_thread_name_(buff), buffer, buffer_at, buffer_size);
|
||||||
#else
|
#else
|
||||||
this->write_header_to_buffer_(level, tag, line, nullptr, buffer, buffer_at, buffer_size);
|
this->write_header_to_buffer_(level, tag, line, nullptr, buffer, buffer_at, buffer_size);
|
||||||
#endif
|
#endif
|
||||||
@@ -277,7 +283,11 @@ class Logger : public Component {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
#if defined(USE_ESP32) || defined(USE_LIBRETINY) || defined(USE_ZEPHYR)
|
||||||
const char *HOT get_thread_name_() {
|
const char *HOT get_thread_name_(
|
||||||
|
#ifdef USE_ZEPHYR
|
||||||
|
char *buff
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
#ifdef USE_ZEPHYR
|
#ifdef USE_ZEPHYR
|
||||||
k_tid_t current_task = k_current_get();
|
k_tid_t current_task = k_current_get();
|
||||||
#else
|
#else
|
||||||
@@ -291,7 +301,13 @@ class Logger : public Component {
|
|||||||
#elif defined(USE_LIBRETINY)
|
#elif defined(USE_LIBRETINY)
|
||||||
return pcTaskGetTaskName(current_task);
|
return pcTaskGetTaskName(current_task);
|
||||||
#elif defined(USE_ZEPHYR)
|
#elif defined(USE_ZEPHYR)
|
||||||
return k_thread_name_get(current_task);
|
const char *name = k_thread_name_get(current_task);
|
||||||
|
if (name) {
|
||||||
|
// zephyr print task names only if debug component is present
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
std::snprintf(buff, MAX_POINTER_REPRESENTATION, "%p", current_task);
|
||||||
|
return buff;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user