summaryrefslogtreecommitdiff
path: root/src/journal/journal-send.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/journal/journal-send.c')
-rw-r--r--src/journal/journal-send.c19
1 files changed, 11 insertions, 8 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, ...) {