[libvirt] [PATCH v2 2/8] Fix journald PRIORITY values

Daniel P. Berrange berrange at redhat.com
Mon Feb 24 16:49:19 UTC 2014


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 <berrange at redhat.com>
---
 src/util/virlog.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/src/util/virlog.c b/src/util/virlog.c
index b8f539e..68af0f3 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,
@@ -1187,7 +1204,8 @@ virLogOutputToJournald(virLogSource source,
     state.bufs_end = iov_bufs + ARRAY_CARDINALITY(iov_bufs);
 
     journalAddString(&state, "MESSAGE", rawstr);
-    journalAddInt(&state, "PRIORITY", priority);
+    journalAddInt(&state, "PRIORITY",
+                  virLogPrioritySyslog(priority));
     journalAddString(&state, "LIBVIRT_SOURCE",
                      virLogSourceTypeToString(source));
     if (filename)
-- 
1.8.5.3




More information about the libvir-list mailing list