From 38ffc7d18aa05c2be6bd3d26fdcd8efbb9bab255 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 29 Sep 2020 13:07:07 +0200 Subject: [PATCH] log: include TID= field in structred log output It always was the intention to expose this as trusted field _TID=, i.e. automatically determine it from journald via some SCM_xyz field or so, but this is never happened, and it's unlikely this will be added anytime soon to the kernel either, hence let's just generate this sender side, even if it means it's untrusted. --- man/systemd.journal-fields.xml | 7 +++++++ src/basic/log.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml index 197a468f25..31e3d8b210 100644 --- a/man/systemd.journal-fields.xml +++ b/man/systemd.journal-fields.xml @@ -149,6 +149,13 @@ file:/, man: or info: URL. + + + TID= + + The numeric thread ID (TID) the log message originates from. + + diff --git a/src/basic/log.c b/src/basic/log.c index 89d26a4a43..7c68258ea8 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -547,6 +547,7 @@ static int log_do_header( r = snprintf(header, size, "PRIORITY=%i\n" "SYSLOG_FACILITY=%i\n" + "TID=" PID_FMT "\n" "%s%.256s%s" /* CODE_FILE */ "%s%.*i%s" /* CODE_LINE */ "%s%.256s%s" /* CODE_FUNC */ @@ -556,6 +557,7 @@ static int log_do_header( "SYSLOG_IDENTIFIER=%.256s\n", LOG_PRI(level), LOG_FAC(level), + gettid(), isempty(file) ? "" : "CODE_FILE=", isempty(file) ? "" : file, isempty(file) ? "" : "\n",