DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v17 13/15] log: add optional support of syslog
Date: Wed, 27 Mar 2024 16:28:36 -0700	[thread overview]
Message-ID: <20240327233001.83505-14-stephen@networkplumber.org> (raw)
In-Reply-To: <20240327233001.83505-1-stephen@networkplumber.org>

Log to syslog only if option is specified. And if syslog is used
then normally only log to syslog, don't duplicate output.
Also enables syslog support on FreeBSD.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_eal_flags.c                     |   5 +-
 doc/guides/linux_gsg/linux_eal_parameters.rst |  27 ----
 doc/guides/prog_guide/log_lib.rst             |  17 +++
 lib/eal/common/eal_common_options.c           |   5 +-
 lib/log/log.c                                 | 121 ++++++++++++++++--
 5 files changed, 137 insertions(+), 38 deletions(-)

diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index e54f6e8b7f..08f4866461 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -987,9 +987,10 @@ test_misc_flags(void)
 	/* With empty --syslog */
 	const char *argv3[] = {prgname, prefix, mp_flag, "--syslog"};
 	/* With valid --syslog */
-	const char *argv4[] = {prgname, prefix, mp_flag, "--syslog", "always"};
+	const char *argv4[] = {prgname, prefix, mp_flag, "--syslog=both"};
 	/* With invalid --syslog */
-	const char *argv5[] = {prgname, prefix, mp_flag, "--syslog", "error"};
+	const char *argv5[] = {prgname, prefix, mp_flag, "--syslog=invalid"};
+
 	/* With no-sh-conf, also use no-huge to ensure this test runs on BSD */
 	const char *argv6[] = {prgname, "-m", DEFAULT_MEM_SIZE,
 			no_shconf, nosh_prefix, no_huge};
diff --git a/doc/guides/linux_gsg/linux_eal_parameters.rst b/doc/guides/linux_gsg/linux_eal_parameters.rst
index ea8f381391..d86f94d8a8 100644
--- a/doc/guides/linux_gsg/linux_eal_parameters.rst
+++ b/doc/guides/linux_gsg/linux_eal_parameters.rst
@@ -108,30 +108,3 @@ Memory-related options
 *   ``--match-allocations``
 
     Free hugepages back to system exactly as they were originally allocated.
-
-Other options
-~~~~~~~~~~~~~
-
-*   ``--syslog <syslog facility>``
-
-    Set syslog facility. Valid syslog facilities are::
-
-        auth
-        cron
-        daemon
-        ftp
-        kern
-        lpr
-        mail
-        news
-        syslog
-        user
-        uucp
-        local0
-        local1
-        local2
-        local3
-        local4
-        local5
-        local6
-        local7
diff --git a/doc/guides/prog_guide/log_lib.rst b/doc/guides/prog_guide/log_lib.rst
index 504eefe1d2..abaedc7212 100644
--- a/doc/guides/prog_guide/log_lib.rst
+++ b/doc/guides/prog_guide/log_lib.rst
@@ -83,6 +83,23 @@ To prefix all console messages with ISO format time the syntax is::
 
 	/path/to/app --log-timestamp=iso
 
+Log output
+~~~~~~~~~~
+
+If desired, messages can be redirected to syslog (on Linux and FreeBSD) with the ``--syslog``
+option. There are three possible settings for this option:
+
+*always*
+    Redirect all log output to syslog.
+
+*auto*
+    Use console if it is a terminal, and use syslog if is not.
+
+*both*
+    Print to both console and syslog.
+
+If ``--syslog`` option is not specified, then only console (stderr) will be used.
+
 
 
 Using Logging APIs to Generate Log Messages
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 5173835c2c..9ca7db04aa 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -91,7 +91,7 @@ eal_long_options[] = {
 	{OPT_PROC_TYPE,         1, NULL, OPT_PROC_TYPE_NUM        },
 	{OPT_SOCKET_MEM,        1, NULL, OPT_SOCKET_MEM_NUM       },
 	{OPT_SOCKET_LIMIT,      1, NULL, OPT_SOCKET_LIMIT_NUM     },
-	{OPT_SYSLOG,            1, NULL, OPT_SYSLOG_NUM           },
+	{OPT_SYSLOG,            2, NULL, OPT_SYSLOG_NUM           },
 	{OPT_VDEV,              1, NULL, OPT_VDEV_NUM             },
 	{OPT_VFIO_INTR,         1, NULL, OPT_VFIO_INTR_NUM        },
 	{OPT_VFIO_VF_TOKEN,     1, NULL, OPT_VFIO_VF_TOKEN_NUM    },
@@ -2221,6 +2221,9 @@ eal_common_usage(void)
 	       "                      (can be used multiple times)\n"
 	       "  --"OPT_VMWARE_TSC_MAP"    Use VMware TSC map instead of native RDTSC\n"
 	       "  --"OPT_PROC_TYPE"         Type of this process (primary|secondary|auto)\n"
+#ifndef RTE_EXEC_ENV_WINDOWS
+	       "  --"OPT_SYSLOG"[=<when>]   Enable use of syslog\n"
+#endif
 	       "  --"OPT_LOG_LEVEL"=<level> Set global log level\n"
 	       "  --"OPT_LOG_LEVEL"=<type-match>:<level>\n"
 	       "                      Set specific log level\n"
diff --git a/lib/log/log.c b/lib/log/log.c
index 2dca91306e..ec0d55273e 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -13,15 +13,17 @@
 #include <sys/queue.h>
 #include <unistd.h>
 
+#ifdef RTE_EXEC_ENV_WINDOWS
+#include <rte_os_shim.h>
+#else
+#include <syslog.h>
+#endif
+
 #include <rte_log.h>
 #include <rte_per_lcore.h>
 
 #include "log_internal.h"
 
-#ifdef RTE_EXEC_ENV_WINDOWS
-#include <rte_os_shim.h>
-#endif
-
 struct rte_log_dynamic_type {
 	const char *name;
 	uint32_t loglevel;
@@ -36,14 +38,25 @@ enum eal_log_time_format {
 	EAL_LOG_TIMESTAMP_ISO,
 };
 
+enum eal_log_syslog {
+	EAL_LOG_SYSLOG_NONE = 0,	/* do not use syslog */
+	EAL_LOG_SYSLOG_AUTO,		/* use syslog only if not a terminal */
+	EAL_LOG_SYSLOG_ALWAYS,		/* always use syslog */
+	EAL_LOG_SYSLOG_BOTH,		/* log to both syslog and stderr */
+};
+
 typedef int (*log_print_t)(FILE *f, uint32_t level, const char *fmt, va_list ap);
 static int log_print(FILE *f, uint32_t level, const char *format, va_list ap);
 
+
 /** The rte_log structure. */
 static struct rte_logs {
 	uint32_t type;  /**< Bitfield with enabled logs. */
 	uint32_t level; /**< Log level. */
 	FILE *file;     /**< Output file set by rte_openlog_stream, or NULL. */
+#ifndef RTE_EXEC_ENV_WINDOWS
+	enum eal_log_syslog syslog_opt;
+#endif
 	log_print_t print_func;
 
 	enum eal_log_time_format time_format;
@@ -532,9 +545,23 @@ rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
 
 /* Placeholder */
 int
-eal_log_syslog(const char *mode __rte_unused)
+eal_log_syslog(const char *str)
 {
+#ifdef RTE_EXEC_ENV_WINDOWS
+	RTE_SET_USED(str);
 	return -1;
+#else
+	if (str == NULL || strcmp(str, "auto") == 0)
+		/* log to syslog only if stderr is not a terminal */
+		rte_logs.syslog_opt = EAL_LOG_SYSLOG_AUTO;
+	else if (strcmp(str, "both") == 0)
+		rte_logs.syslog_opt = EAL_LOG_SYSLOG_BOTH;
+	else if (strcmp(str, "always") == 0)
+		rte_logs.syslog_opt = EAL_LOG_SYSLOG_ALWAYS;
+	else
+		return -1;
+	return 0;
+#endif
 }
 
 /* Set the log timestamp format */
@@ -706,17 +733,95 @@ log_print_with_timestamp(FILE *f, uint32_t level,
 	return log_print(f, level, format, ap);
 }
 
+#ifndef RTE_EXEC_ENV_WINDOWS
+static bool
+using_syslog(bool is_terminal)
+{
+	switch (rte_logs.syslog_opt) {
+	default:
+		return false;
+
+	case EAL_LOG_SYSLOG_ALWAYS:
+	case EAL_LOG_SYSLOG_BOTH:
+		return true;
+
+	case EAL_LOG_SYSLOG_AUTO:
+		return !is_terminal;
+	}
+}
+
 /*
- * Called by rte_eal_init
+ * wrapper for log stream to put messages into syslog
+ * useful for cases like:
+ *   rte_hex_dump(rte_get_log_stream(), ...)
  */
-void
-eal_log_init(const char *id __rte_unused)
+static ssize_t
+syslog_log_write(__rte_unused void *c, const char *buf, size_t size)
 {
+	/* Syslog error levels are from 0 to 7, so subtract 1 to convert */
+	syslog(rte_log_cur_msg_loglevel() - 1, "%.*s", (int)size, buf);
+	return size;
+}
+
+static int
+syslog_log_close(__rte_unused void *c)
+{
+	closelog();
+	return 0;
+}
+
+static cookie_io_functions_t syslog_log_func = {
+	.write = syslog_log_write,
+	.close = syslog_log_close,
+};
+
+static void
+log_open_syslog(const char *id, bool is_terminal)
+{
+	int flags = LOG_NDELAY | LOG_PID;
+
+#ifdef LOG_PERROR
+	if (rte_logs.syslog_opt == EAL_LOG_SYSLOG_BOTH)
+		flags |= LOG_PERROR;
+#endif
+	openlog(id, flags, is_terminal ? LOG_USER : LOG_DAEMON);
+
+	/* redirect other log messages to syslog as well */
+	FILE *log_stream = fopencookie(NULL, "w", syslog_log_func);
+	if (log_stream != NULL)
+		default_log_stream = log_stream;
+}
+#endif
+
+/* Choose how log output is directed */
+static void
+log_output_selection(const char *id)
+{
+	RTE_SET_USED(id);
+
+#ifndef RTE_EXEC_ENV_WINDOWS
+	bool is_terminal = isatty(STDERR_FILENO);
+
+	if (using_syslog(is_terminal)) {
+		log_open_syslog(id, is_terminal);
+		return;
+	}
+#endif
 	if (rte_logs.time_format != EAL_LOG_TIMESTAMP_NONE)
 		rte_logs.print_func = log_print_with_timestamp;
+}
 
+/*
+ * Called by rte_eal_init
+ */
+void
+eal_log_init(const char *id)
+{
+	rte_logs.print_func = log_print;
 	default_log_stream = stderr;
 
+	log_output_selection(id);
+
 #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG
 	RTE_LOG(NOTICE, EAL,
 		"Debug dataplane logs available - lower performance\n");
-- 
2.43.0


  parent reply	other threads:[~2024-03-27 23:31 UTC|newest]

Thread overview: 255+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-14 17:34 [dpdk-dev] [PATCH] eal: add option to put timestamp on console output Stephen Hemminger
2020-08-14 18:39 ` Dmitry Kozlyuk
2020-08-14 18:45   ` Stephen Hemminger
2020-08-14 19:09     ` Dmitry Kozlyuk
2020-08-14 19:20       ` Stephen Hemminger
2020-08-17 10:37         ` Bruce Richardson
2020-08-17 15:11           ` Stephen Hemminger
2020-10-19 14:11             ` Thomas Monjalon
2020-10-19 15:25               ` Stephen Hemminger
2024-03-21 17:22                 ` Thomas Monjalon
2023-03-06 18:18 ` [PATCH v2 0/2] Add option to timestamp console log Stephen Hemminger
2023-03-06 18:18   ` [PATCH v2 1/2] eal: unify logging code for FreeBsd and Linux Stephen Hemminger
2023-03-06 18:18   ` [PATCH v2 2/2] eal: add option to put timestamp on console output Stephen Hemminger
2023-03-07  9:09   ` [PATCH v2 0/2] Add option to timestamp console log Bruce Richardson
2023-03-06 19:28 ` [PATCH v3 " Stephen Hemminger
2023-03-06 19:28   ` [PATCH v3 1/2] eal: unify logging code for FreeBsd and Linux Stephen Hemminger
2023-03-06 19:28   ` [PATCH v3 2/2] eal: add option to put timestamp on console output Stephen Hemminger
2023-03-07  9:35     ` fengchengwen
2023-03-07 16:05       ` Stephen Hemminger
2023-03-07 16:06       ` Stephen Hemminger
2023-03-08  0:36         ` fengchengwen
2023-03-08  2:03           ` Stephen Hemminger
2023-03-09  0:55             ` fengchengwen
2023-03-08  2:51           ` Stephen Hemminger
2023-03-07  7:33   ` [PATCH v3 0/2] Add option to timestamp console log Morten Brørup
2023-03-07  9:12     ` Bruce Richardson
2023-03-07 16:04     ` Stephen Hemminger
2023-06-26 18:42 ` [PATCH v4 0/5] Logging related patchs Stephen Hemminger
2023-06-26 18:42   ` [PATCH v4 1/5] eal: unify logging code for FreeBsd and Linux Stephen Hemminger
2023-06-26 18:42   ` [PATCH v4 2/5] eal: turn off getopt_long error message during eal_log_level Stephen Hemminger
2023-06-26 18:42   ` [PATCH v4 3/5] eal: skip stdio on console logging Stephen Hemminger
2023-06-26 18:42   ` [PATCH v4 4/5] eal: move logging initialization earlier Stephen Hemminger
2023-06-26 18:42   ` [PATCH v4 5/5] eal: add option to put timestamp on console output Stephen Hemminger
2023-06-27  7:40   ` [PATCH v4 0/5] Logging related patchs Morten Brørup
2023-06-27 14:49     ` Stephen Hemminger
2023-06-27 15:04       ` Morten Brørup
2023-06-27 15:02     ` Bruce Richardson
2023-06-28 17:58 ` [PATCH v5 0/6] Logging related patches Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 1/6] eal: unify logging code for FreeBsd and Linux Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 2/6] eal: turn off getopt_long error message during eal_log_level Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 3/6] eal: fix handling of syslog facility Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 4/6] eal: skip stdio on console logging Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 5/6] eal: allow user to set default log stream before init Stephen Hemminger
2023-06-28 17:58   ` [PATCH v5 6/6] eal: add option to put timestamp on console output Stephen Hemminger
2023-06-29 15:58 ` [PATCH v6 0/6] Logging related patches Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 1/6] eal: unify logging code Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 2/6] eal: turn off getopt_long error message during eal_log_level Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 3/6] eal: fix help message for syslog option Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 4/6] eal: skip stdio on console logging Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 5/6] eal: allow user to set default log stream before init Stephen Hemminger
2023-06-29 15:58   ` [PATCH v6 6/6] eal: add option to put timestamp on console output Stephen Hemminger
2023-07-05 22:48 ` [PATCH v7 0/5] Logging timetamp and related patches Stephen Hemminger
2023-07-05 22:48   ` [PATCH v7 1/5] windows: make getopt functions have const properties Stephen Hemminger
2023-07-10 21:10     ` Tyler Retzlaff
2023-07-05 22:48   ` [PATCH v7 2/5] eal: fix help message for syslog option Stephen Hemminger
2023-07-05 22:48   ` [PATCH v7 3/5] eal: unify logging code Stephen Hemminger
2023-07-05 22:48   ` [PATCH v7 4/5] eal: allow user to set default log stream before init Stephen Hemminger
2023-07-05 22:48   ` [PATCH v7 5/5] eal: add option to put timestamp on console output Stephen Hemminger
2024-03-18 18:30 ` [PATCH v8 0/5] Logging timestamp and related patches Stephen Hemminger
2024-03-18 18:30   ` [PATCH v8 1/5] log: unify logging code Stephen Hemminger
2024-03-18 18:30   ` [PATCH v8 2/5] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-18 18:30   ` [PATCH v8 3/5] eal: allow user to set default log stream before init Stephen Hemminger
2024-03-18 18:30   ` [PATCH v8 4/5] eal: add option to put timestamp on console output Stephen Hemminger
2024-03-18 18:30   ` [PATCH v8 5/5] eal: initialize logging before plugins Stephen Hemminger
2024-03-18 22:02 ` [PATCH v9 0/5] Logging unification and timestamp Stephen Hemminger
2024-03-18 22:02   ` [PATCH v9 1/5] log: unify logging code Stephen Hemminger
2024-03-18 22:02   ` [PATCH v9 2/5] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-18 22:02   ` [PATCH v9 3/5] eal: initialize logging before plugins Stephen Hemminger
2024-03-18 22:03   ` [PATCH v9 4/5] eal: allow user to set default log stream before init Stephen Hemminger
2024-03-18 22:03   ` [PATCH v9 5/5] eal: add option to put timestamp on console output Stephen Hemminger
2024-03-19  7:37     ` Morten Brørup
2024-03-19 15:51       ` Stephen Hemminger
2024-03-19 16:13         ` Morten Brørup
2024-03-20  3:33           ` Stephen Hemminger
2024-03-20  8:34             ` Morten Brørup
2024-03-20 14:38               ` Stephen Hemminger
2024-03-20 17:38                 ` Morten Brørup
2024-03-21 16:00 ` [PATCH v10 00/10] Logging enhancements Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 01/10] windows: make getopt functions have const properties Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 02/10] log: unify logging code Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 03/10] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-21 17:00     ` Tyler Retzlaff
2024-03-21 16:00   ` [PATCH v10 04/10] eal: initialize log earlier in startup Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 05/10] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 06/10] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-21 17:04     ` Tyler Retzlaff
2024-03-21 16:00   ` [PATCH v10 07/10] eal: allow user to set default log stream before init Stephen Hemminger
2024-03-21 17:07     ` Tyler Retzlaff
2024-03-21 16:00   ` [PATCH v10 08/10] eal: add option to put timestamp on console output Stephen Hemminger
2024-03-21 17:11     ` Tyler Retzlaff
2024-03-21 17:16       ` Stephen Hemminger
2024-03-21 17:49         ` Tyler Retzlaff
2024-03-22  0:30           ` Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 09/10] log: colorize log output Stephen Hemminger
2024-03-21 16:00   ` [PATCH v10 10/10] doc: add documentation of logging options Stephen Hemminger
2024-03-24  2:33 ` [PATCH v11 0/9] Logging unification and enhancements Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 1/9] windows: make getopt functions have const properties Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 2/9] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 3/9] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 4/9] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 5/9] log: drop syslog support, and make code common Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 6/9] log: add hook for printing log messages Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 7/9] log: add timestamp option Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 8/9] log: add support for systemd journal Stephen Hemminger
2024-03-24  2:33   ` [PATCH v11 9/9] log: colorize log output Stephen Hemminger
2024-03-24 11:18   ` [PATCH v11 0/9] Logging unification and enhancements Mattias Rönnblom
2024-03-25 20:46 ` [PATCH v12 00/14] " Stephen Hemminger
2024-03-25 20:46   ` [PATCH v12 01/14] windows: make getopt functions have const properties Stephen Hemminger
2024-03-25 20:46   ` [PATCH v12 02/14] windows: add os shim for localtime_r Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 03/14] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 04/14] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 05/14] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-27  7:17     ` Tyler Retzlaff
2024-03-25 20:47   ` [PATCH v12 06/14] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 07/14] eal: initialize log before everything else Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 08/14] log: drop syslog support, and make code common Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 09/14] log: add hook for printing log messages Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 10/14] log: add timestamp option Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 11/14] log: add optional support of syslog Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 12/14] log: add support for systemd journal Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 13/14] log: colorize log output Stephen Hemminger
2024-03-25 20:47   ` [PATCH v12 14/14] maintainers: add for log library Stephen Hemminger
2024-03-26  1:56 ` [PATCH v13 00/11] Logging unification and improvements Stephen Hemminger
2024-03-26  1:56   ` [PATCH v13 01/11] windows: make getopt functions have const properties Stephen Hemminger
2024-03-26  9:35     ` Morten Brørup
2024-03-26  1:56   ` [PATCH v13 02/11] windows: add os shim for localtime_r Stephen Hemminger
2024-03-26  1:56   ` [PATCH v13 03/11] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-26  1:56   ` [PATCH v13 04/11] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 05/11] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 06/11] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 07/11] eal: initialize log before everything else Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 08/11] log: drop syslog support, and make code common Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 09/11] log: add hook for printing log messages Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 10/11] log: add timestamp option Stephen Hemminger
2024-03-26  1:57   ` [PATCH v13 11/11] log: add optional support of syslog Stephen Hemminger
2024-03-26 17:34 ` [PATCH v14 00/15] Logging unification and improvments Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 01/15] maintainers: add for log library Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 12/15] log: add timestamp option Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 13/15] log: add optional support of syslog Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-26 17:34   ` [PATCH v14 15/15] log: colorize log output Stephen Hemminger
2024-03-27  0:26 ` [PATCH v15 00/15] Logging unification and improvements Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 01/15] maintainers: add for log library Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 12/15] log: add timestamp option Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 13/15] log: add optional support of syslog Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-27  0:27   ` [PATCH v15 15/15] log: colorize log output Stephen Hemminger
2024-03-27 16:45 ` [PATCH v16 00/15] Logging unification and improvements Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 01/15] maintainers: add for log library Stephen Hemminger
2024-03-27 16:52     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-27 16:56     ` Tyler Retzlaff
2024-03-27 17:30       ` Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-27 17:08     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-27 17:11     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-27 17:11     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-27 17:12     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-27 17:14     ` Tyler Retzlaff
2024-03-27 16:45   ` [PATCH v16 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 12/15] log: add timestamp option Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 13/15] log: add optional support of syslog Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-27 16:45   ` [PATCH v16 15/15] log: colorize log output Stephen Hemminger
2024-03-27 23:28 ` [PATCH v17 00/15] Logging unification and improvements Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 01/15] maintainers: add for log library Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 12/15] log: add timestamp option Stephen Hemminger
2024-03-27 23:28   ` Stephen Hemminger [this message]
2024-03-27 23:28   ` [PATCH v17 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-27 23:28   ` [PATCH v17 15/15] log: colorize log output Stephen Hemminger
2024-03-28 23:49 ` [PATCH v18 00/15] Logging unification and improvements Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 01/15] maintainers: add for log library Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 12/15] log: add timestamp option Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 13/15] log: add optional support of syslog Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-28 23:49   ` [PATCH v18 15/15] log: colorize log output Stephen Hemminger
2024-03-30  3:00 ` [PATCH v19 00/15] Logging unification and improvements Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 01/15] maintainers: add for log library Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 02/15] windows: make getopt functions have const properties Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 03/15] windows: add os shim for localtime_r Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 04/15] windows: common wrapper for vasprintf and asprintf Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 05/15] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 06/15] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 07/15] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 08/15] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 09/15] eal: initialize log before everything else Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 10/15] log: drop syslog support, and make code common Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 11/15] log: add hook for printing log messages Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 12/15] log: add timestamp option Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 13/15] log: add optional support of syslog Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 14/15] log: add support for systemd journal Stephen Hemminger
2024-03-30  3:00   ` [PATCH v19 15/15] log: colorize log output Stephen Hemminger
2024-03-30 16:42 ` [PATCH v20 00/14] Logging unification and improvements Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 01/14] maintainers: add for log library Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 02/14] windows: make getopt functions have const properties Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 03/14] windows: add os shim for localtime_r Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 04/14] eal: make eal_log_level_parse common Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 05/14] eal: do not duplicate rte_init_alert() messages Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 06/14] eal: change rte_exit() output to match rte_log() Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 07/14] log: move handling of syslog facility out of eal Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 08/14] eal: initialize log before everything else Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 09/14] log: drop syslog support, and make code common Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 10/14] log: add hook for printing log messages Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 11/14] log: add timestamp option Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 12/14] log: add optional support of syslog Stephen Hemminger
2024-03-30 16:42   ` [PATCH v20 13/14] log: add support for systemd journal Stephen Hemminger
2024-04-01 11:18     ` Luca Boccassi
2024-03-30 16:42   ` [PATCH v20 14/14] log: colorize log output Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240327233001.83505-14-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).