From 3e32e5a4d29c9c725c53d8e05ec6762550593006 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 13 Dec 2024 19:52:53 +0100 Subject: [PATCH 1/2] log: raise log level to LOG_DEBUG if $DEBUG_INVOCATION=1 is set Let's implement our own protocols, and raise the log level to debug if DEBUG_INVOCATION=1 is set. Follow-up for: 7d8bbfbe0852ec89590d1dc5e28afc95d6d44fa1 --- src/basic/log.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/basic/log.c b/src/basic/log.c index b99f37385c..9f09b0cea5 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -1406,14 +1406,29 @@ static bool should_parse_proc_cmdline(void) { void log_parse_environment_variables(void) { const char *e; + int r; e = getenv("SYSTEMD_LOG_TARGET"); if (e && log_set_target_from_string(e) < 0) log_warning("Failed to parse log target '%s', ignoring.", e); e = getenv("SYSTEMD_LOG_LEVEL"); - if (e && log_set_max_level_from_string(e) < 0) - log_warning("Failed to parse log level '%s', ignoring.", e); + if (e) { + r = log_set_max_level_from_string(e); + if (r < 0) + log_warning_errno(r, "Failed to parse log level '%s', ignoring: %m", e); + } else { + /* If no explicit log level is specified then let's see if this is a debug invocation, and if + * so raise the log level to debug too. Note that this is not symmetric: just because + * DEBUG_INVOCATION is explicitly set to 0 we won't lower the log level below debug. This + * follows the logic that debug logging is an opt-in thing anyway, and if there's any reason + * to enable it we should not disable it here automatically. */ + r = getenv_bool("DEBUG_INVOCATION"); + if (r < 0 && r != -ENXIO) + log_warning_errno(r, "Failed to parse $DEBUG_INVOCATION value, ignoring: %m"); + else if (r > 0) + log_set_max_level(LOG_DEBUG); + } e = getenv("SYSTEMD_LOG_COLOR"); if (e && log_show_color_from_string(e) < 0) From b92be9b8e02f1b9df69ecbceef4341600fad8f73 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 13 Dec 2024 20:00:41 +0100 Subject: [PATCH 2/2] update TODO --- TODO | 3 --- 1 file changed, 3 deletions(-) diff --git a/TODO b/TODO index 99e8f1c723..80e6f1f6a7 100644 --- a/TODO +++ b/TODO @@ -129,9 +129,6 @@ Deprecations and removals: Features: -* our logging tools should look for $DEBUG_INVOCATION and consider equivalent - to $SYSTEMD_LOG_LEVEL=debug - * Teach systemd-ssh-generator to generated an /run/issue.d/ drop-in telling users how to connect to the system via the AF_VSOCK, as per: https://github.com/systemd/systemd/issues/35071#issuecomment-2462803142