summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/main.c1
-rw-r--r--src/shared/log.c17
2 files changed, 17 insertions, 1 deletions
diff --git a/src/core/main.c b/src/core/main.c
index 5189833e4..064445d17 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 268f0340a..2a075ffeb 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)