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 <step...@networkplumber.org>
---
 app/test/test_eal_flags.c           |  11 ++-
 lib/eal/common/eal_common_options.c |   3 -
 lib/log/log.c                       |  29 +++++---
 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 -
 8 files changed, 26 insertions(+), 153 deletions(-)
 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 661b2db211..9ab512e8a1 100644
--- a/lib/eal/common/eal_common_options.c
+++ b/lib/eal/common/eal_common_options.c
@@ -2212,9 +2212,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 255f757d94..f597da2e39 100644
--- a/lib/log/log.c
+++ b/lib/log/log.c
@@ -70,12 +70,13 @@ 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)
 {
+       if (rte_logs.file != NULL)
+               fclose(rte_logs.file);
+
        rte_logs.file = f;
        return 0;
 }
@@ -505,13 +506,20 @@ 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;
+       default_log_stream = stderr;
 
 #if RTE_LOG_DP_LEVEL >= RTE_LOG_DEBUG
        RTE_LOG(NOTICE, EAL,
@@ -525,8 +533,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_log_get_stream();
+
+       /* don't close stderr on the application */
+       if (log_stream != stderr)
+               fclose(log_stream);
+
+       rte_logs.file = NULL;
 }
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

Reply via email to