From: Erik Skultety Date: Thu, 3 Jan 2019 13:32:36 +0000 (+0100) Subject: util: Fix the default log output to 'journald' when running under systemd X-Git-Tag: v5.0.0-rc1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30727583aed2e4655985916556418d8e44c5d2a9;p=thirdparty%2Flibvirt.git 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 --- 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); }