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 ae06048bf5. 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 <eskultet@redhat.com>
Acked-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Erik Skultety 2019-01-03 14:32:36 +01:00
parent f3a4fbd24b
commit 30727583ae

View File

@ -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 (access("/run/systemd/journal/socket", W_OK) >= 0)
return virLogSetDefaultOutputToJournald();
if (godaemon) {
if (have_journald)
return virLogSetDefaultOutputToJournald();
} else {
if (!isatty(STDIN_FILENO) && have_journald)
return virLogSetDefaultOutputToJournald();
return virLogSetDefaultOutputToStderr();
}
return virLogSetDefaultOutputToFile(filename, privileged);
}