]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
log: include TID= field in structred log output 17199/head
authorLennart Poettering <lennart@poettering.net>
Tue, 29 Sep 2020 11:07:07 +0000 (13:07 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 29 Sep 2020 13:51:53 +0000 (15:51 +0200)
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
src/basic/log.c

index 197a468f25de8c23e2a73a359fd06b3538f5b6f3..31e3d8b210be1e9a084b2a76239b5f23f9d3edfa 100644 (file)
           <literal>file:/</literal>, <literal>man:</literal> or <literal>info:</literal> URL.</para>
         </listitem>
       </varlistentry>
+
+      <varlistentry>
+        <term><varname>TID=</varname></term>
+        <listitem>
+          <para>The numeric thread ID (TID) the log message originates from.</para>
+        </listitem>
+      </varlistentry>
     </variablelist>
   </refsect1>
 
index 89d26a4a438dbf90117ce5d7296c1ac3483644ad..7c68258ea8812d400fec26526c9c9215948365ca 100644 (file)
@@ -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",