diff --git a/llarp/router/router.cpp b/llarp/router/router.cpp index 6f5478959..56b725058 100644 --- a/llarp/router/router.cpp +++ b/llarp/router/router.cpp @@ -1042,6 +1042,7 @@ namespace llarp #if defined(WITH_SYSTEMD) ::sd_notify(0, "READY=1"); #endif + LogContext::Instance().DropToRuntimeLevel(); return _running; } @@ -1091,6 +1092,7 @@ namespace llarp return; _stopping.store(true); + LogContext::Instance().RevertRuntimeLevel(); LogInfo("stopping router"); hiddenServiceContext().StopAll(); _exitContext.Stop(); diff --git a/llarp/util/logging/logger.cpp b/llarp/util/logging/logger.cpp index 9e99a4781..31f06d625 100644 --- a/llarp/util/logging/logger.cpp +++ b/llarp/util/logging/logger.cpp @@ -36,6 +36,18 @@ namespace llarp return ctx; } + void + LogContext::DropToRuntimeLevel() + { + curLevel = runtimeLevel; + } + + void + LogContext::RevertRuntimeLevel() + { + curLevel = startupLevel; + } + log_timestamp::log_timestamp() : log_timestamp("%c %Z") { } @@ -50,7 +62,7 @@ namespace llarp void SetLogLevel(LogLevel lvl) { - LogContext::Instance().minLevel = lvl; + LogContext::Instance().curLevel = lvl; } } // namespace llarp diff --git a/llarp/util/logging/logger.hpp b/llarp/util/logging/logger.hpp index 206c8a000..9a020aad0 100644 --- a/llarp/util/logging/logger.hpp +++ b/llarp/util/logging/logger.hpp @@ -83,7 +83,9 @@ namespace llarp struct LogContext { LogContext(); - LogLevel minLevel = eLogInfo; + LogLevel curLevel = eLogInfo; + LogLevel startupLevel = eLogInfo; + LogLevel runtimeLevel = eLogWarn; ILogStream_ptr logStream; std::string nodeName = "lokinet"; @@ -91,6 +93,12 @@ namespace llarp static LogContext& Instance(); + + void + DropToRuntimeLevel(); + + void + RevertRuntimeLevel(); }; void @@ -102,7 +110,7 @@ namespace llarp _Log(LogLevel lvl, const char* fname, int lineno, TArgs&&... args) noexcept { auto& log = LogContext::Instance(); - if(log.minLevel > lvl) + if(log.curLevel > lvl) return; std::stringstream ss;