summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-01-25 17:02:36 -0500
committerAnthony G. Basile <blueness@gentoo.org>2015-01-25 17:02:36 -0500
commitd08c44759ababc16e6ea53ca2477e73e7286e1b5 (patch)
treeba432a55963d2ec3bee18fc19ea661c460f99337
parent4e716cdeb5d3ec2082ad5b92fc691277a37b4639 (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.c10
-rw-r--r--src/shared/log.h1
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,