From a2ccff1c9b4d8f1352d8f26991cc92860310b842 Mon Sep 17 00:00:00 2001 From: kongr45gpen <electrovesta@gmail.com> Date: Wed, 14 Aug 2019 00:12:37 +0300 Subject: [PATCH] Use a constexpr function instead of a #define to check if a log level is loggable Thanks @xlxs41 for the suggestion! --- inc/Logger.hpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/inc/Logger.hpp b/inc/Logger.hpp index 48a3ab19..f1319550 100644 --- a/inc/Logger.hpp +++ b/inc/Logger.hpp @@ -24,14 +24,6 @@ #define LOGLEVEL Logger::disabled // Ignore-MISRA #endif -/** - * Internal define to check if logging is enabled for a level - * @param level A log level - * @return bool - */ -#define _ac_LOGGER_ENABLED_LEVEL(level) /* Ignore-MISRA */ \ - (( (Logger::LogLevelType) LOGLEVEL) <= ( (Logger::LogLevelType) level)) - /** * Create a stream to log a Message * @@ -79,7 +71,7 @@ * @param level The log level. A value of \ref Logger::LogEntry */ #define LOG(level) /* Ignore-MISRA */ \ - if (_ac_LOGGER_ENABLED_LEVEL(level)) \ + if (Logger::isLogged(level)) \ if (Logger::LogEntry entry(level); true) \ entry @@ -147,6 +139,15 @@ public: LogEntry(LogEntry const&) = delete; ///< Unimplemented copy constructor }; + /** + * Returns whether a log entry of level \p level is logged, based on the compilation constants + * @param level The level of the log entry + * @return True if the logging is enabled for \p level, false if not + */ + static constexpr bool isLogged(LogLevelType level) { + return static_cast<LogLevelType>(LOGLEVEL) <= level; + } + /** * Store a new log message */ -- GitLab