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 | util: Add some missing hidden_file() suffixes (diff) | |
download | eudev-d08c44759ababc16e6ea53ca2477e73e7286e1b5.tar.gz eudev-d08c44759ababc16e6ea53ca2477e73e7286e1b5.tar.bz2 eudev-d08c44759ababc16e6ea53ca2477e73e7286e1b5.zip |
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 69f23fead..d4df4dffd 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 485f3fa0f..9d4f64d6c 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, |