summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/journal/journal-send.c19
-rw-r--r--src/journal/sd-journal.h4
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);