|
|
@ -172,16 +172,6 @@ void LogPrint (std::stringstream& s, TValue&& arg) noexcept |
|
|
|
s << std::forward<TValue>(arg); |
|
|
|
s << std::forward<TValue>(arg); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#if (__cplusplus < 201703L) // below C++ 17
|
|
|
|
|
|
|
|
/** internal usage only -- folding args array to single string */ |
|
|
|
|
|
|
|
template<typename TValue, typename... TArgs> |
|
|
|
|
|
|
|
void LogPrint (std::stringstream& s, TValue&& arg, TArgs&&... args) noexcept |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
LogPrint (s, std::forward<TValue>(arg)); |
|
|
|
|
|
|
|
LogPrint (s, std::forward<TArgs>(args)...); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @brief Create log message and send it to queue |
|
|
|
* @brief Create log message and send it to queue |
|
|
|
* @param level Message level (eLogError, eLogInfo, ...) |
|
|
|
* @param level Message level (eLogError, eLogInfo, ...) |
|
|
@ -194,13 +184,7 @@ void LogPrint (LogLevel level, TArgs&&... args) noexcept |
|
|
|
|
|
|
|
|
|
|
|
// fold message to single string
|
|
|
|
// fold message to single string
|
|
|
|
std::stringstream ss; |
|
|
|
std::stringstream ss; |
|
|
|
|
|
|
|
|
|
|
|
#if (__cplusplus >= 201703L) // C++ 17 or higher
|
|
|
|
|
|
|
|
(LogPrint (ss, std::forward<TArgs>(args)), ...); |
|
|
|
(LogPrint (ss, std::forward<TArgs>(args)), ...); |
|
|
|
#else |
|
|
|
|
|
|
|
LogPrint (ss, std::forward<TArgs>(args)...); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto msg = std::make_shared<i2p::log::LogMsg>(level, std::time(nullptr), std::move(ss).str()); |
|
|
|
auto msg = std::make_shared<i2p::log::LogMsg>(level, std::time(nullptr), std::move(ss).str()); |
|
|
|
msg->tid = std::this_thread::get_id(); |
|
|
|
msg->tid = std::this_thread::get_id(); |
|
|
|
i2p::log::Logger().Append(msg); |
|
|
|
i2p::log::Logger().Append(msg); |
|
|
@ -217,11 +201,7 @@ void ThrowFatal (TArgs&&... args) noexcept |
|
|
|
if (!f) return; |
|
|
|
if (!f) return; |
|
|
|
// fold message to single string
|
|
|
|
// fold message to single string
|
|
|
|
std::stringstream ss(""); |
|
|
|
std::stringstream ss(""); |
|
|
|
#if (__cplusplus >= 201703L) // C++ 17 or higher
|
|
|
|
|
|
|
|
(LogPrint (ss, std::forward<TArgs>(args)), ...); |
|
|
|
(LogPrint (ss, std::forward<TArgs>(args)), ...); |
|
|
|
#else |
|
|
|
|
|
|
|
LogPrint (ss, std::forward<TArgs>(args)...); |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
f (ss.str ()); |
|
|
|
f (ss.str ()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|