diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-12-23 17:56:44 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-12-23 17:56:44 +0100 |
commit | b8d0ffc21f9c237cdeef49b1873b47df1a0a1543 (patch) | |
tree | 1e834ae889e94b56ca715fc12fb723c2bdbb006d | |
parent | 46525bfc020e06609a44670f277aaf23954e7d85 (diff) |
log: als turn on debug logging in non-PID1 if /proc/cmdline contains "debug"
-rw-r--r-- | src/core/main.c | 1 | ||||
-rw-r--r-- | src/shared/log.c | 17 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/core/main.c b/src/core/main.c index 5189833e48..064445d17e 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -462,7 +462,6 @@ DEFINE_SETTER(config_parse_target, log_set_target_from_string, "target") DEFINE_SETTER(config_parse_color, log_show_color_from_string, "color" ) DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location") - static int config_parse_cpu_affinity2(const char *unit, const char *filename, unsigned line, diff --git a/src/shared/log.c b/src/shared/log.c index 268f0340a1..2a075ffeba 100644 --- a/src/shared/log.c +++ b/src/shared/log.c @@ -879,7 +879,24 @@ int log_set_max_level_from_string(const char *e) { } void log_parse_environment(void) { + _cleanup_free_ char *line = NULL; const char *e; + int r; + + r = proc_cmdline(&line); + if (r < 0) + log_warning("Failed to read /proc/cmdline. Ignoring: %s", strerror(-r)); + else if (r > 0) { + char *w, *state; + size_t l; + + FOREACH_WORD_QUOTED(w, l, line, state) { + if (l == 5 && startswith(w, "debug")) { + log_set_max_level(LOG_DEBUG); + break; + } + } + } e = secure_getenv("SYSTEMD_LOG_TARGET"); if (e && log_set_target_from_string(e) < 0) |