logging tweak

This commit is contained in:
folkert van heusden 2024-04-23 16:14:25 +02:00
parent 4d9077df2d
commit 4264236495
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
4 changed files with 25 additions and 4 deletions

View file

@ -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);

12
log.h
View file

@ -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

View file

@ -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;

View file

@ -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);