X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Flog.c;fp=src%2Fshared%2Flog.c;h=f8c16de777c242da5841f290f0ee927a4751defd;hb=aca83a53ee1dd01beafcd07c55c4cd6c3efb4224;hp=af1a932c86e9e37971c821f2e30b07d9a7481171;hpb=07e10d1a7c7535bd3938b09a11bf29b94a9dae77;p=elogind.git diff --git a/src/shared/log.c b/src/shared/log.c index af1a932c8..f8c16de77 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -314,14 +314,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) { @@ -1016,7 +1021,8 @@ int log_show_location_from_string(const char *e) { } bool log_on_console(void) { - if (log_target == LOG_TARGET_CONSOLE) + if (log_target == LOG_TARGET_CONSOLE || + log_target == LOG_TARGET_CONSOLE_PREFIXED) return true; return syslog_fd < 0 && kmsg_fd < 0 && journal_fd < 0; @@ -1024,6 +1030,7 @@ bool log_on_console(void) { static const char *const log_target_table[_LOG_TARGET_MAX] = { [LOG_TARGET_CONSOLE] = "console", + [LOG_TARGET_CONSOLE_PREFIXED] = "console-prefixed", [LOG_TARGET_KMSG] = "kmsg", [LOG_TARGET_JOURNAL] = "journal", [LOG_TARGET_JOURNAL_OR_KMSG] = "journal-or-kmsg",