diff options
-rw-r--r-- | src/journal/journal-send.c | 19 | ||||
-rw-r--r-- | src/journal/sd-journal.h | 4 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index e2575a9805..238d64c13e 100644 --- a/src/journal/journal-send.c +++ b/src/journal/journal-send.c @@ -52,30 +52,33 @@ retry: return fd; } -int sd_journal_print(const char *format, ...) { +int sd_journal_print(int priority, const char *format, ...) { int r; va_list ap; va_start(ap, format); - r = sd_journal_printv(format, ap); + r = sd_journal_printv(priority, format, ap); va_end(ap); return r; } -int sd_journal_printv(const char *format, va_list ap) { - char buffer[8 + LINE_MAX]; - struct iovec iov; +int sd_journal_printv(int priority, const char *format, va_list ap) { + char buffer[8 + LINE_MAX], p[11]; + struct iovec iov[2]; + + snprintf(p, sizeof(p), "PRIORITY=%i", priority & LOG_PRIMASK); + char_array_0(p); memcpy(buffer, "MESSAGE=", 8); vsnprintf(buffer+8, sizeof(buffer) - 8, format, ap); - char_array_0(buffer); zero(iov); - IOVEC_SET_STRING(iov, buffer); + IOVEC_SET_STRING(iov[0], buffer); + IOVEC_SET_STRING(iov[1], p); - return sd_journal_sendv(&iov, 1); + return sd_journal_sendv(iov, 2); } int sd_journal_send(const char *format, ...) { diff --git a/src/journal/sd-journal.h b/src/journal/sd-journal.h index b167dcf097..05a929d910 100644 --- a/src/journal/sd-journal.h +++ b/src/journal/sd-journal.h @@ -45,8 +45,8 @@ /* Write to daemon */ -int sd_journal_print(const char *format, ...) __attribute__ ((format (printf, 1, 2))); -int sd_journal_printv(const char *format, va_list ap); +int sd_journal_print(int piority, const char *format, ...) __attribute__ ((format (printf, 2, 3))); +int sd_journal_printv(int priority, const char *format, va_list ap); int sd_journal_send(const char *format, ...) __attribute__((sentinel)); int sd_journal_sendv(const struct iovec *iov, int n); |