diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-01-25 17:02:36 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2015-01-25 17:02:36 -0500 |
commit | d08c44759ababc16e6ea53ca2477e73e7286e1b5 (patch) | |
tree | ba432a55963d2ec3bee18fc19ea661c460f99337 | |
parent | 4e716cdeb5d3ec2082ad5b92fc691277a37b4639 (diff) |
log: add new log output mode, that prints to console, but
prefixes with syslog priority
This is useful when we execute our own programs, reading output from its
STDERR, and want to retain priority information.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-rw-r--r-- | src/shared/log.c | 10 | ||||
-rw-r--r-- | src/shared/log.h | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/shared/log.c b/src/shared/log.c index 69f23fead0..d4df4dffd3 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -244,14 +244,19 @@ static int write_to_console( const char *object, const char *buffer) { - char location[64]; - struct iovec iovec[5] = {}; + char location[64], prefix[1 + DECIMAL_STR_MAX(int) + 2]; + struct iovec iovec[6] = {}; unsigned n = 0; bool highlight; if (console_fd < 0) return 0; + if (log_target == LOG_TARGET_CONSOLE_PREFIXED) { + sprintf(prefix, "<%i>", level); + IOVEC_SET_STRING(iovec[n++], prefix); + } + highlight = LOG_PRI(level) <= LOG_ERR && show_color; if (show_location) { @@ -540,6 +545,7 @@ int log_get_max_level(void) { } static const char *const log_target_table[] = { [LOG_TARGET_CONSOLE] = "console", + [LOG_TARGET_CONSOLE_PREFIXED] = "console-prefixed", [LOG_TARGET_KMSG] = "kmsg", [LOG_TARGET_SYSLOG] = "syslog", [LOG_TARGET_SYSLOG_OR_KMSG] = "syslog-or-kmsg", diff --git a/src/shared/log.h b/src/shared/log.h index 485f3fa0f6..9d4f64d6cd 100644 --- a/src/shared/log.h +++ b/src/shared/log.h @@ -28,6 +28,7 @@ typedef enum LogTarget{ LOG_TARGET_CONSOLE, + LOG_TARGET_CONSOLE_PREFIXED, LOG_TARGET_KMSG, LOG_TARGET_JOURNAL, LOG_TARGET_JOURNAL_OR_KMSG, |