chiark / gitweb /
log: make log_set_upgrade_syslog_to_journal() take effect immediately
authorLennart Poettering <lennart@poettering.net>
Wed, 24 Jan 2018 16:33:07 +0000 (17:33 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 30 May 2018 05:50:15 +0000 (07:50 +0200)
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.

src/basic/log.c
src/basic/log.h

index d9890e83531f2a3aab87e909f36fad0ba0b2cd9d..b01ebaacd2d58ae3ec22d025a7b9f5d161521f05 100644 (file)
@@ -1337,6 +1337,14 @@ int log_syntax_invalid_utf8_internal(
 #if 0 /// UNNEEDED by elogind
 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) {
index 357564efb3aabb479d367e6b81866ef8e13271f2..d04768cd4d2a24040b4e553eb84f1f41e58471ae 100644 (file)
@@ -310,6 +310,7 @@ LogTarget log_target_from_string(const char *s) _pure_;
 #if 0 /// UNNEEDED by elogind
 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);
 #endif // 0