about summary refs log tree commit diff
path: root/src/libutil
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-19T23·39+0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-07-19T23·39+0200
commitdb55940d9e9fd502b17522d011dfd941e3f69c5d (patch)
tree3f00e36e8c2afe2ac797218d5ac7274f1dae142f /src/libutil
parentb3491c781cb4be55f981b7456fcdbe5c4f869f01 (diff)
Support systemd log severity prefixes
This is mostly useful for hydra-queue-runner.
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/util.cc12
-rw-r--r--src/libutil/util.hh3
2 files changed, 14 insertions, 1 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index f54fd5fb623f..7959b76f868d 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -477,12 +477,24 @@ void printMsg_(Verbosity level, const FormatOrString & fs)
 {
     checkInterrupt();
     if (level > verbosity) return;
+
     string prefix;
     if (logType == ltPretty)
         for (int i = 0; i < nestingLevel; i++)
             prefix += "|   ";
     else if (logType == ltEscapes && level != lvlInfo)
         prefix = "\033[" + escVerbosity(level) + "s";
+    else if (logType == ltSystemd) {
+        char c;
+        switch (level) {
+            case lvlError: c = '3'; break;
+            case lvlInfo: c = '5'; break;
+            case lvlTalkative: case lvlChatty: c = '6'; break;
+            default: c = '7';
+        }
+        prefix = string("<") + c + ">";
+    }
+
     string s = (format("%1%%2%\n") % prefix % fs.s).str();
     if (!isatty(STDERR_FILENO)) s = filterANSIEscapes(s);
     writeToStderr(s);
diff --git a/src/libutil/util.hh b/src/libutil/util.hh
index 980cdf4cb774..b2fb59d6f2d7 100644
--- a/src/libutil/util.hh
+++ b/src/libutil/util.hh
@@ -122,7 +122,8 @@ T singleton(const A & a)
 typedef enum {
     ltPretty,   /* nice, nested output */
     ltEscapes,  /* nesting indicated using escape codes (for log2xml) */
-    ltFlat      /* no nesting */
+    ltFlat,     /* no nesting */
+    ltSystemd,  /* use systemd severity prefixes */
 } LogType;
 
 extern LogType logType;