From: Lennart Poettering Date: Sat, 17 Dec 2011 00:32:49 +0000 (+0100) Subject: journal: introduce mandatory sd_journal_printf() priority parameter X-Git-Tag: v38~144^2~38 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=d0bbc21caa6e68693a47db60c93e99422bf2a858 journal: introduce mandatory sd_journal_printf() priority parameter --- diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c index e2575a980..238d64c13 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 b167dcf09..05a929d91 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);