From 4264236495b7fafe18d852ba903d836957ff01c5 Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Tue, 23 Apr 2024 16:14:25 +0200 Subject: [PATCH] logging tweak --- log.cpp | 4 ++-- log.h | 12 ++++++++++-- utils.cpp | 12 ++++++++++++ utils.h | 1 + 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/log.cpp b/log.cpp index a8053a5..2e8ba8e 100644 --- a/log.cpp +++ b/log.cpp @@ -136,9 +136,9 @@ void dolog(const log_level_t ll, const char *fmt, ...) const char *const ll_names[] = { "emerg ", "alert ", "crit ", "error ", "warning", "notice ", "info ", "debug ", "none " }; - asprintf(&ts_str, "%04d-%02d-%02d %02d:%02d:%02d.%06d] %s ", + asprintf(&ts_str, "%04d-%02d-%02d %02d:%02d:%02d.%06d %s|%s] ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, int(now % 1000000), - ll_names[ll]); + ll_names[ll], get_thread_name().c_str()); if (ll <= log_level_file && is_file == false) send_syslog(ll, str); diff --git a/log.h b/log.h index c58e9f5..c94e3c4 100644 --- a/log.h +++ b/log.h @@ -21,11 +21,19 @@ void dolog(const log_level_t ll, const char *fmt, ...); #ifdef TURBO #define DOLOG(ll, always, fmt, ...) do { } while(0) #else +#if defined(ESP32) #define DOLOG(ll, always, fmt, ...) do { \ extern log_level_t log_level_file, log_level_screen; \ \ - [[unlikely]] \ - if (always || ll <= log_level_file || ll <= log_level_screen) \ + if (always || ll <= log_level_file || ll <= log_level_screen) \ + dolog(ll, fmt, ##__VA_ARGS__); \ + } while(0) +#else +#define DOLOG(ll, always, fmt, ...) do { \ + extern log_level_t log_level_file, log_level_screen; \ + \ + if (always || ll <= log_level_file || ll <= log_level_screen) [[unlikely]] \ dolog(ll, fmt, ##__VA_ARGS__); \ } while(0) #endif +#endif diff --git a/utils.cpp b/utils.cpp index e57b908..77300ce 100644 --- a/utils.cpp +++ b/utils.cpp @@ -163,6 +163,18 @@ void set_thread_name(std::string name) #endif } +std::string get_thread_name() +{ +#ifdef linux + char buffer[16 + 1] { }; + pthread_getname_np(pthread_self(), buffer, sizeof buffer); + + return buffer; +#else + return pcTaskGetName(xTaskGetCurrentTaskHandle()); +#endif +} + ssize_t WRITE(int fd, const char *whereto, size_t len) { ssize_t cnt=0; diff --git a/utils.h b/utils.h index 9b1b781..be27c83 100644 --- a/utils.h +++ b/utils.h @@ -18,6 +18,7 @@ unsigned long get_ms(); uint64_t get_us(); void myusleep(uint64_t us); +std::string get_thread_name(); void set_thread_name(std::string name); ssize_t WRITE(int fd, const char *whereto, size_t len);