Skip to content
Snippets Groups Projects
Unverified Commit a2ccff1c authored by kongr45gpen's avatar kongr45gpen
Browse files

Use a constexpr function instead of a #define to check if a log level is loggable

Thanks @xlxs41 for the suggestion!
parent 6fea04c6
No related branches found
No related tags found
No related merge requests found
......@@ -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
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment