From: Lennart Poettering Date: Wed, 24 Jan 2018 16:33:07 +0000 (+0100) Subject: log: make log_set_upgrade_syslog_to_journal() take effect immediately X-Git-Tag: v237~31^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6fdb8de42fbd314f1d06019f9ba4c4a060898e5f;p=thirdparty%2Fsystemd.git log: make log_set_upgrade_syslog_to_journal() take effect immediately This doesn't matter much, and we don't rely on it, but I think it's much nicer if we log_set_target() and log_set_upgrade_syslog_to_journal() can be called in either order and have the same effect. --- diff --git a/src/basic/log.c b/src/basic/log.c index 9169474289b..8a65aa349e4 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -1314,6 +1314,14 @@ int log_syntax_invalid_utf8_internal( void log_set_upgrade_syslog_to_journal(bool b) { upgrade_syslog_to_journal = b; + + /* Make the change effective immediately */ + if (b) { + if (log_target == LOG_TARGET_SYSLOG) + log_target = LOG_TARGET_JOURNAL; + else if (log_target == LOG_TARGET_SYSLOG_OR_KMSG) + log_target = LOG_TARGET_JOURNAL_OR_KMSG; + } } void log_set_always_reopen_console(bool b) { diff --git a/src/basic/log.h b/src/basic/log.h index b97cdcd703d..910a89a2559 100644 --- a/src/basic/log.h +++ b/src/basic/log.h @@ -302,6 +302,7 @@ LogTarget log_target_from_string(const char *s) _pure_; void log_received_signal(int level, const struct signalfd_siginfo *si); +/* If turned on, any requests for a log target involving "syslog" will be implicitly upgraded to the equivalent journal target */ void log_set_upgrade_syslog_to_journal(bool b); void log_set_always_reopen_console(bool b); void log_set_open_when_needed(bool b); diff --git a/src/core/main.c b/src/core/main.c index 7d20f4e67b6..9ecb8e98355 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -2328,6 +2328,7 @@ int main(int argc, char *argv[]) { saved_argv = argv; saved_argc = argc; + /* Make sure that if the user says "syslog" we actually log to the journal. */ log_set_upgrade_syslog_to_journal(true); if (getpid_cached() == 1) {