chiark / gitweb /
util: split out signal-util.[ch] from util.[ch]
[elogind.git] / src / shared / log.c
index e8b63a3ed9a208923ad76d2e828b751dfa7607b3..b96afc4de4ffb93e982da40505f02d526f40e8e4 100644 (file)
@@ -38,6 +38,7 @@
 #include "formats-util.h"
 #include "process-util.h"
 #include "terminal-util.h"
+#include "signal-util.h"
 
 #define SNDBUF_SIZE (8*1024*1024)
 
@@ -693,7 +694,8 @@ int log_object_internalv(
                 va_list ap) {
 
         PROTECT_ERRNO;
-        char buffer[LINE_MAX];
+        char *buffer, *b;
+        size_t l;
 
         if (error < 0)
                 error = -error;
@@ -705,7 +707,21 @@ int log_object_internalv(
         if (error != 0)
                 errno = error;
 
-        vsnprintf(buffer, sizeof(buffer), format, ap);
+        /* Prepend the object name before the message */
+        if (object) {
+                size_t n;
+
+                n = strlen(object);
+                l = n + 2 + LINE_MAX;
+
+                buffer = newa(char, l);
+                b = stpcpy(stpcpy(buffer, object), ": ");
+        } else {
+                l = LINE_MAX;
+                b = buffer = newa(char, l);
+        }
+
+        vsnprintf(b, l, format, ap);
 
         return log_dispatch(level, error, file, line, func, object_field, object, buffer);
 }