From c5b4ea84a049451cbdc804b4a5a5ad0760a084d0 Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Tue, 29 Dec 2015 22:42:58 +0100 Subject: [PATCH] Added LOG_LEVEL_SCOPE() which sets the log level and resets it to the previous value once it goes out of scope. Couldn't remember what I needed this for when I was done writing it, but maybe someone will find a use for it... --- include/Engine/Core/Util/Logging.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/Engine/Core/Util/Logging.h b/include/Engine/Core/Util/Logging.h index 43f2c022..ec3de877 100644 --- a/include/Engine/Core/Util/Logging.h +++ b/include/Engine/Core/Util/Logging.h @@ -80,4 +80,27 @@ static void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsign #define LOG_DEBUG(format, ...) \ LOG(LOG_LEVEL_DEBUG, format, ##__VA_ARGS__) +// Set the log level temporarily for the current scope +#define LOG_LEVEL_SCOPE(logLevel) \ + _LOG_LEVEL_SCOPED_HELPER _logLevelScopedHelper; + +template <_LOG_LEVEL LEVEL> +class _LOG_LEVEL_SCOPED_HELPER +{ +public: + _LOG_LEVEL_SCOPED_HELPER() + { + m_OriginalLogLevel = LOG_LEVEL; + LOG_LEVEL = LEVEL; + } + + ~_LOG_LEVEL_SCOPED_HELPER() + { + LOG_LEVEL = m_OriginalLogLevel; + } + +private: + _LOG_LEVEL m_OriginalLogLevel; +}; + #endif // Logging_h__ \ No newline at end of file