[PATCH v21 09/14] log: drop syslog support, and make code common
Stephen Hemminger
stephen at networkplumber.org
Tue Jun 4 02:44:57 CEST 2024
This patch makes the log setup code common across all platforms.
Drops syslog support for now, will come back in later patch.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
app/test/test_eal_flags.c | 11 ++-
lib/eal/common/eal_common_options.c | 3 -
lib/log/log.c | 41 +++++------
lib/log/log_freebsd.c | 11 ---
lib/log/log_internal.h | 6 --
lib/log/log_linux.c | 102 ----------------------------
lib/log/log_windows.c | 22 ------
lib/log/meson.build | 5 +-
lib/log/version.map | 1 -
9 files changed, 23 insertions(+), 179 deletions(-)
delete mode 100644 lib/log/log_freebsd.c
delete mode 100644 lib/log/log_linux.c
delete mode 100644 lib/log/log_windows.c
diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index 6cb4b06757..36e3185a10 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -984,11 +984,10 @@ test_misc_flags(void)
const char *argv1[] = {prgname, prefix, mp_flag, "--no-pci"};
/* With -v */
const char *argv2[] = {prgname, prefix, mp_flag, "-v"};
+ /* With empty --syslog */
+ const char *argv3[] = {prgname, prefix, mp_flag, "--syslog"};
/* With valid --syslog */
- const char *argv3[] = {prgname, prefix, mp_flag,
- "--syslog", "syslog"};
- /* With empty --syslog (should fail) */
- const char *argv4[] = {prgname, prefix, mp_flag, "--syslog"};
+ const char *argv4[] = {prgname, prefix, mp_flag, "--syslog", "always"};
/* With invalid --syslog */
const char *argv5[] = {prgname, prefix, mp_flag, "--syslog", "error"};
/* With no-sh-conf, also use no-huge to ensure this test runs on BSD */
@@ -1083,8 +1082,8 @@ test_misc_flags(void)
printf("Error - process did not run ok with --syslog flag\n");
goto fail;
}
- if (launch_proc(argv4) == 0) {
- printf("Error - process run ok with empty --syslog flag\n");
+ if (launch_proc(argv4) != 0) {
+ printf("Error - process did not with --syslog always flag\n");
goto fail;
}
if (launch_proc(argv5) == 0) {
diff --git a/lib/eal/common/eal_common_options.c b/lib/eal/common/eal_common_options.c
index 02e0f6fe55..89e0465f04 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -2211,9 +2211,6 @@ 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" Set syslog facility\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 4b24e145b6..3fe86ddcd7 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -57,9 +57,6 @@ TAILQ_HEAD(rte_eal_opt_loglevel_list, rte_eal_opt_loglevel);
static struct rte_eal_opt_loglevel_list opt_loglevel_list =
TAILQ_HEAD_INITIALIZER(opt_loglevel_list);
-/* Stream to use for logging if rte_logs.file is NULL */
-static FILE *default_log_stream;
-
/**
* This global structure stores some information about the message
* that is currently being processed by one lcore
@@ -72,8 +69,6 @@ struct log_cur_msg {
/* per core log */
static RTE_DEFINE_PER_LCORE(struct log_cur_msg, log_cur_msg);
-/* default logs */
-
/* Change the stream that will be used by logging system */
int
rte_openlog_stream(FILE *f)
@@ -87,17 +82,7 @@ rte_log_get_stream(void)
{
FILE *f = rte_logs.file;
- if (f == NULL) {
- /*
- * Grab the current value of stderr here, rather than
- * just initializing default_log_stream to stderr. This
- * ensures that we will always use the current value
- * of stderr, even if the application closes and
- * reopens it.
- */
- return default_log_stream != NULL ? default_log_stream : stderr;
- }
- return f;
+ return (f == NULL) ? stderr : f;
}
/* Set global log level */
@@ -507,14 +492,19 @@ rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
return ret;
}
+/* Placeholder */
+int
+eal_log_syslog(const char *mode __rte_unused)
+{
+ return -1;
+}
+
/*
- * Called by environment-specific initialization functions.
+ * Called by rte_eal_init
*/
void
-eal_log_set_default(FILE *default_log)
+eal_log_init(const char *id __rte_unused)
{
- default_log_stream = default_log;
-
#if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG
RTE_LOG(NOTICE, EAL,
"Debug dataplane logs available - lower performance\n");
@@ -527,8 +517,11 @@ eal_log_set_default(FILE *default_log)
void
rte_eal_log_cleanup(void)
{
- if (default_log_stream) {
- fclose(default_log_stream);
- default_log_stream = NULL;
- }
+ FILE *log_stream = rte_logs.file;
+
+ /* don't close stderr on the application */
+ if (log_stream != NULL)
+ fclose(log_stream);
+
+ rte_logs.file = NULL;
}
diff --git a/lib/log/log_freebsd.c b/lib/log/log_freebsd.c
deleted file mode 100644
index 33a0925c43..0000000000
--- a/lib/log/log_freebsd.c
+++ /dev/null
@@ -1,11 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2023 Intel Corporation
- */
-
-#include <rte_common.h>
-#include "log_internal.h"
-
-void
-eal_log_init(__rte_unused const char *id)
-{
-}
diff --git a/lib/log/log_internal.h b/lib/log/log_internal.h
index d5fabd7ef7..3c46328e7b 100644
--- a/lib/log/log_internal.h
+++ b/lib/log/log_internal.h
@@ -16,12 +16,6 @@
__rte_internal
void eal_log_init(const char *id);
-/*
- * Determine where log data is written when no call to rte_openlog_stream.
- */
-__rte_internal
-void eal_log_set_default(FILE *default_log);
-
/*
* Save a log option for later.
*/
diff --git a/lib/log/log_linux.c b/lib/log/log_linux.c
deleted file mode 100644
index 6d7dc8f3ab..0000000000
--- a/lib/log/log_linux.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2010-2014 Intel Corporation
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <syslog.h>
-
-#include <rte_common.h>
-#include <rte_log.h>
-
-#include "log_internal.h"
-
-static int log_facility = LOG_DAEMON;
-
-static const struct {
- const char *name;
- int value;
-} facilitys[] = {
- { "auth", LOG_AUTH },
- { "cron", LOG_CRON },
- { "daemon", LOG_DAEMON },
- { "ftp", LOG_FTP },
- { "kern", LOG_KERN },
- { "lpr", LOG_LPR },
- { "mail", LOG_MAIL },
- { "news", LOG_NEWS },
- { "syslog", LOG_SYSLOG },
- { "user", LOG_USER },
- { "uucp", LOG_UUCP },
- { "local0", LOG_LOCAL0 },
- { "local1", LOG_LOCAL1 },
- { "local2", LOG_LOCAL2 },
- { "local3", LOG_LOCAL3 },
- { "local4", LOG_LOCAL4 },
- { "local5", LOG_LOCAL5 },
- { "local6", LOG_LOCAL6 },
- { "local7", LOG_LOCAL7 },
-};
-
-int
-eal_log_syslog(const char *name)
-{
- unsigned int i;
-
- for (i = 0; i < RTE_DIM(facilitys); i++) {
- if (!strcmp(name, facilitys[i].name)) {
- log_facility = facilitys[i].value;
- return 0;
- }
- }
- return -1;
-}
-
-/*
- * default log function
- */
-static ssize_t
-console_log_write(__rte_unused void *c, const char *buf, size_t size)
-{
- ssize_t ret;
-
- /* write on stderr */
- ret = fwrite(buf, 1, size, stderr);
- fflush(stderr);
-
- /* 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 ret;
-}
-
-static int
-console_log_close(__rte_unused void *c)
-{
- closelog();
- return 0;
-}
-
-static cookie_io_functions_t console_log_func = {
- .write = console_log_write,
- .close = console_log_close,
-};
-
-/*
- * set the log to default function, called during eal init process,
- * once memzones are available.
- */
-void
-eal_log_init(const char *id)
-{
- FILE *log_stream;
-
- openlog(id, LOG_NDELAY | LOG_PID, log_facility);
-
- log_stream = fopencookie(NULL, "w+", console_log_func);
- if (log_stream != NULL)
- eal_log_set_default(log_stream);
- else
- eal_log_set_default(stderr);
-}
diff --git a/lib/log/log_windows.c b/lib/log/log_windows.c
deleted file mode 100644
index d7c30e4cfa..0000000000
--- a/lib/log/log_windows.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2017-2018 Intel Corporation
- */
-
-#include <rte_common.h>
-#include <rte_log.h>
-#include "log_internal.h"
-
-int
-eal_log_syslog(const char *name __rte_unused)
-{
- return -1; /* not used */
-}
-
-/* set the log to default function, called during eal init process. */
-void
-eal_log_init(__rte_unused const char *id)
-{
- rte_openlog_stream(stderr);
-
- eal_log_set_default(stderr);
-}
diff --git a/lib/log/meson.build b/lib/log/meson.build
index 0d4319b36f..891f77a237 100644
--- a/lib/log/meson.build
+++ b/lib/log/meson.build
@@ -2,8 +2,5 @@
# Copyright(c) 2023 Intel Corporation
includes += global_inc
-sources = files(
- 'log.c',
- 'log_' + exec_env + '.c',
-)
+sources = files('log.c')
headers = files('rte_log.h')
diff --git a/lib/log/version.map b/lib/log/version.map
index 9c6c49bf06..32b9680c31 100644
--- a/lib/log/version.map
+++ b/lib/log/version.map
@@ -29,7 +29,6 @@ INTERNAL {
eal_log_level2str;
eal_log_save_pattern;
eal_log_save_regexp;
- eal_log_set_default;
eal_log_syslog;
rte_eal_log_cleanup;
};
--
2.43.0
More information about the dev
mailing list