]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix journald PRIORITY values
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 24 Feb 2014 16:21:55 +0000 (16:21 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 28 Feb 2014 17:37:38 +0000 (17:37 +0000)
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@redhat.com>
src/util/virlog.c

index b8f539e4894d490e346df56acc2aae16a8a42ecc..68af0f32884ccfc97df992e5d953c0b91588693b 100644 (file)
@@ -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)