From 18dfd38f386cfa48a39608a69de622bcbf346fef Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 24 Feb 2014 16:21:55 +0000 Subject: [PATCH] Fix journald PRIORITY values The systemd journal expects log record PRIORITY values to be encoded using the syslog compatible numbering scheme, not libvirt's own native numbering scheme. We must therefore apply a conversion. Signed-off-by: Daniel P. Berrange (cherry picked from commit 21d370f0b90e9ff1c9e9c8e454130b6446d7eb89) Conflicts: src/util/virlog.c - whitespace (commit c7c84fa) https://bugzilla.redhat.com/show_bug.cgi?id=1043550 --- src/util/virlog.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/util/virlog.c b/src/util/virlog.c index 5b7e7b0613..ffb3b91161 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -1000,7 +1000,22 @@ virLogAddOutputToFile(virLogPriority priority, } -#if HAVE_SYSLOG_H +#if HAVE_SYSLOG_H || USE_JOURNALD + +/* Compat in case we build with journald, but no syslog */ +# ifndef LOG_DEBUG +# define LOG_DEBUG 7 +# endif +# ifndef LOG_INFO +# define LOG_INFO 6 +# endif +# ifndef LOG_WARNING +# define LOG_WARNING 4 +# endif +# ifndef LOG_ERR +# define LOG_ERR 3 +# endif + static int virLogPrioritySyslog(virLogPriority priority) { @@ -1017,8 +1032,10 @@ virLogPrioritySyslog(virLogPriority priority) return LOG_ERR; } } +#endif /* HAVE_SYSLOG_H || USE_JOURNALD */ +#if HAVE_SYSLOG_H static void virLogOutputToSyslog(virLogSource source ATTRIBUTE_UNUSED, virLogPriority priority, @@ -1183,8 +1200,9 @@ virLogOutputToJournald(virLogSource source, state.bufs = iov_bufs; state.bufs_end = iov_bufs + ARRAY_CARDINALITY(iov_bufs); - journalAddString(&state ,"MESSAGE", rawstr); - journalAddInt(&state, "PRIORITY", priority); + journalAddString(&state, "MESSAGE", rawstr); + journalAddInt(&state, "PRIORITY", + virLogPrioritySyslog(priority)); journalAddString(&state, "LIBVIRT_SOURCE", virLogSourceTypeToString(source)); if (filename)