diff --git a/Log.cpp b/Log.cpp index 590f3d0f..5660821f 100644 --- a/Log.cpp +++ b/Log.cpp @@ -10,7 +10,7 @@ namespace i2p { namespace log { - Log logger; + static Log logger; /** * @brief Maps our loglevel to their symbolic name */ diff --git a/Log.h b/Log.h index bedc98f8..79bbeb3f 100644 --- a/Log.h +++ b/Log.h @@ -162,17 +162,17 @@ namespace log { /** internal usage only -- folding args array to single string */ template -void LogPrint (std::stringstream& s, TValue arg) +void LogPrint (std::stringstream& s, TValue&& arg) noexcept { - s << arg; + s << std::forward(arg); } /** internal usage only -- folding args array to single string */ template -void LogPrint (std::stringstream& s, TValue arg, TArgs... args) +void LogPrint (std::stringstream& s, TValue&& arg, TArgs&&... args) noexcept { - LogPrint (s, arg); - LogPrint (s, args...); + LogPrint (s, std::forward(arg)); + LogPrint (s, std::forward(args)...); } /** @@ -181,7 +181,7 @@ void LogPrint (std::stringstream& s, TValue arg, TArgs... args) * @param args Array of message parts */ template -void LogPrint (LogLevel level, TArgs... args) +void LogPrint (LogLevel level, TArgs&&... args) noexcept { i2p::log::Log &log = i2p::log::Logger(); if (level > log.GetLogLevel ()) @@ -194,7 +194,7 @@ void LogPrint (LogLevel level, TArgs... args) ss << LOG_COLOR_ERROR; else if (level == eLogWarning) // if log level is WARN color log message yellow ss << LOG_COLOR_WARNING; - LogPrint (ss, args ...); + LogPrint (ss, std::forward(args)...); // reset color ss << LOG_COLOR_RESET;