From 30727583aed2e4655985916556418d8e44c5d2a9 Mon Sep 17 00:00:00 2001 From: Erik Skultety Date: Thu, 3 Jan 2019 14:32:36 +0100 Subject: [PATCH] util: Fix the default log output to 'journald' when running under systemd Essentially, bring back the old behaviour as of commit eba36a38 which was later changed by commit ae06048bf5d. Even though all the stderr messages will eventually end up in the journal, we're not making use of the fields journald provides. https://bugzilla.redhat.com/show_bug.cgi?id=1592644 Signed-off-by: Erik Skultety Acked-by: Michal Privoznik --- src/util/virlog.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/util/virlog.c b/src/util/virlog.c index cb6901d9bf..3ee58c5db6 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -223,11 +223,17 @@ virLogSetDefaultOutputToFile(const char *filename, bool privileged) int virLogSetDefaultOutput(const char *filename, bool godaemon, bool privileged) { - if (!godaemon) - return virLogSetDefaultOutputToStderr(); + bool have_journald = access("/run/systemd/journal/socket", W_OK) >= 0; + + if (godaemon) { + if (have_journald) + return virLogSetDefaultOutputToJournald(); + } else { + if (!isatty(STDIN_FILENO) && have_journald) + return virLogSetDefaultOutputToJournald(); - if (access("/run/systemd/journal/socket", W_OK) >= 0) - return virLogSetDefaultOutputToJournald(); + return virLogSetDefaultOutputToStderr(); + } return virLogSetDefaultOutputToFile(filename, privileged); } -- 2.39.5