From c9279169a1834824dbf6886a29dda6a8728a6895 Mon Sep 17 00:00:00 2001 From: Erik Skultety Date: Thu, 17 Mar 2016 15:26:40 +0100 Subject: [PATCH] daemon: Split output parsing and output defining Since virLogParseAndDefineOutputs is going to be stripped from 'output defining' logic, replace all relevant occurrences with virLogSetOutputs call to make the change transparent to all original callers (daemons mostly). Signed-off-by: Erik Skultety --- daemon/libvirtd.c | 8 ++++---- src/locking/lock_daemon.c | 8 ++++---- src/logging/log_daemon.c | 8 ++++---- src/util/virlog.c | 2 +- tests/testutils.c | 14 ++++++++++++-- tests/virlogtest.c | 5 +++-- 6 files changed, 28 insertions(+), 17 deletions(-) diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index 8efa69defb..c482f27892 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -693,8 +693,8 @@ daemonSetupLogging(struct daemonConfig *config, if (virLogGetNbFilters() == 0) virLogParseAndDefineFilters(config->log_filters); - if (virLogGetNbOutputs() == 0) - virLogParseAndDefineOutputs(config->log_outputs); + if (config->log_outputs && virLogGetNbOutputs() == 0) + virLogSetOutputs(config->log_outputs); /* * Command line override for --verbose @@ -721,7 +721,7 @@ daemonSetupLogging(struct daemonConfig *config, if (virAsprintf(&tmp, "%d:journald", priority) < 0) goto error; - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } } @@ -764,7 +764,7 @@ daemonSetupLogging(struct daemonConfig *config, if (virAsprintf(&tmp, "%d:stderr", virLogGetDefaultPriority()) < 0) goto error; } - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index 84c3029624..4856cd6fb4 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -478,8 +478,8 @@ virLockDaemonSetupLogging(virLockDaemonConfigPtr config, if (virLogGetNbFilters() == 0) virLogParseAndDefineFilters(config->log_filters); - if (virLogGetNbOutputs() == 0) - virLogParseAndDefineOutputs(config->log_outputs); + if (config->log_outputs && virLogGetNbOutputs() == 0) + virLogSetOutputs(config->log_outputs); /* * Command line override for --verbose @@ -499,7 +499,7 @@ virLockDaemonSetupLogging(virLockDaemonConfigPtr config, if (access("/run/systemd/journal/socket", W_OK) >= 0) { if (virAsprintf(&tmp, "%d:journald", virLogGetDefaultPriority()) < 0) goto error; - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } } @@ -543,7 +543,7 @@ virLockDaemonSetupLogging(virLockDaemonConfigPtr config, if (virAsprintf(&tmp, "%d:stderr", virLogGetDefaultPriority()) < 0) goto error; } - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c index 48eece97e2..74dae5f67c 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -406,8 +406,8 @@ virLogDaemonSetupLogging(virLogDaemonConfigPtr config, if (virLogGetNbFilters() == 0) virLogParseAndDefineFilters(config->log_filters); - if (virLogGetNbOutputs() == 0) - virLogParseAndDefineOutputs(config->log_outputs); + if (config->log_outputs && virLogGetNbOutputs() == 0) + virLogSetOutputs(config->log_outputs); /* * Command line override for --verbose @@ -427,7 +427,7 @@ virLogDaemonSetupLogging(virLogDaemonConfigPtr config, if (access("/run/systemd/journal/socket", W_OK) >= 0) { if (virAsprintf(&tmp, "%d:journald", virLogGetDefaultPriority()) < 0) goto error; - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } } @@ -471,7 +471,7 @@ virLogDaemonSetupLogging(virLogDaemonConfigPtr config, if (virAsprintf(&tmp, "%d:stderr", virLogGetDefaultPriority()) < 0) goto error; } - virLogParseAndDefineOutputs(tmp); + virLogSetOutputs(tmp); VIR_FREE(tmp); } diff --git a/src/util/virlog.c b/src/util/virlog.c index 0444155bba..9a247eefa1 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -1627,7 +1627,7 @@ virLogSetFromEnv(void) virLogParseAndDefineFilters(debugEnv); debugEnv = virGetEnvAllowSUID("LIBVIRT_LOG_OUTPUTS"); if (debugEnv && *debugEnv) - virLogParseAndDefineOutputs(debugEnv); + virLogSetOutputs(debugEnv); } diff --git a/tests/testutils.c b/tests/testutils.c index 35b041f2d7..a596a83a96 100644 --- a/tests/testutils.c +++ b/tests/testutils.c @@ -872,6 +872,9 @@ int virTestMain(int argc, #ifdef TEST_OOM char *oomstr; #endif + size_t noutputs = 0; + virLogOutputPtr output = NULL; + virLogOutputPtr *outputs = NULL; if (getenv("VIR_TEST_FILE_ACCESS")) VIRT_TEST_PRELOAD(TEST_MOCK); @@ -911,9 +914,15 @@ int virTestMain(int argc, virLogSetFromEnv(); if (!getenv("LIBVIRT_DEBUG") && !virLogGetNbOutputs()) { - if (virLogDefineOutput(virtTestLogOutput, virtTestLogClose, &testLog, - VIR_LOG_DEBUG, VIR_LOG_TO_STDERR, NULL, 0) < 0) + if (!(output = virLogOutputNew(virtTestLogOutput, virtTestLogClose, + &testLog, VIR_LOG_DEBUG, + VIR_LOG_TO_STDERR, NULL)) || + VIR_APPEND_ELEMENT(outputs, noutputs, output) < 0 || + virLogDefineOutputs(outputs, noutputs) < 0) { + virLogOutputFree(output); + virLogOutputListFree(outputs, noutputs); return EXIT_FAILURE; + } } if ((testRange = getenv("VIR_TEST_RANGE")) != NULL) { @@ -988,6 +997,7 @@ int virTestMain(int argc, fprintf(stderr, "%*s", 40 - (int)(testCounter % 40), ""); fprintf(stderr, " %-3zu %s\n", testCounter, ret == 0 ? "OK" : "FAIL"); } + virLogReset(); VIR_FREE(perl); return ret; } diff --git a/tests/virlogtest.c b/tests/virlogtest.c index afcd84a4bb..9d657d09ed 100644 --- a/tests/virlogtest.c +++ b/tests/virlogtest.c @@ -48,9 +48,10 @@ testLogParseOutputs(const void *opaque) { int ret = -1; int noutputs; + virLogOutputPtr *outputs = NULL; const struct testLogData *data = opaque; - noutputs = virLogParseAndDefineOutputs(data->str); + noutputs = virLogParseOutputs(data->str, &outputs); if (noutputs < 0) { if (!data->pass) { VIR_TEST_DEBUG("Got expected error: %s\n", @@ -70,7 +71,7 @@ testLogParseOutputs(const void *opaque) ret = 0; cleanup: - virLogReset(); + virLogOutputListFree(outputs, noutputs); return ret; }