Thanh Nguyen / libmDot-dev-mbed5
Committer:
Jason Reiss
Date:
Wed Dec 02 15:19:12 2015 -0600
Revision:
10:27dafba9fe19
Parent:
7:683dba5d576f
Child:
12:54f9cac9d690
Adding support for "sleep" mode and RTC_ALARM_OR_INTERRUPT wakeup

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:9f30fbe9e9c1 1 #ifndef MTSLOG_H
Mike Fiore 1:9f30fbe9e9c1 2 #define MTSLOG_H
Mike Fiore 1:9f30fbe9e9c1 3
Mike Fiore 1:9f30fbe9e9c1 4 #ifdef MTS_DEBUG
Mike Fiore 1:9f30fbe9e9c1 5 #define logFatal(format, ...) \
Mike Fiore 7:683dba5d576f 6 mts::MTSLog::printMessage(mts::MTSLog::FATAL_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::FATAL_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 7 #define logError(format, ...) \
Mike Fiore 7:683dba5d576f 8 mts::MTSLog::printMessage(mts::MTSLog::ERROR_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::ERROR_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 9 #define logWarning(format, ...) \
Mike Fiore 7:683dba5d576f 10 mts::MTSLog::printMessage(mts::MTSLog::WARNING_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::WARNING_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 11 #define logInfo(format, ...) \
Mike Fiore 7:683dba5d576f 12 mts::MTSLog::printMessage(mts::MTSLog::INFO_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::INFO_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 13 #define logDebug(format, ...) \
Mike Fiore 7:683dba5d576f 14 mts::MTSLog::printMessage(mts::MTSLog::DEBUG_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::DEBUG_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 15 #define logTrace(format, ...) \
Mike Fiore 7:683dba5d576f 16 mts::MTSLog::printMessage(mts::MTSLog::TRACE_LEVEL, "%s:%s:%s| [%s] " format "\r\n", __FILE__, __func__, __LINE__, mts::MTSLog::TRACE_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 17 #else
Mike Fiore 1:9f30fbe9e9c1 18 #define logFatal(format, ...) \
Mike Fiore 7:683dba5d576f 19 mts::MTSLog::printMessage(mts::MTSLog::FATAL_LEVEL, "[%s] " format "\r\n", mts::MTSLog::FATAL_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 20 #define logError(format, ...) \
Mike Fiore 7:683dba5d576f 21 mts::MTSLog::printMessage(mts::MTSLog::ERROR_LEVEL, "[%s] " format "\r\n", mts::MTSLog::ERROR_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 22 #define logWarning(format, ...) \
Mike Fiore 7:683dba5d576f 23 mts::MTSLog::printMessage(mts::MTSLog::WARNING_LEVEL, "[%s] " format "\r\n", mts::MTSLog::WARNING_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 24 #define logInfo(format, ...) \
Mike Fiore 7:683dba5d576f 25 mts::MTSLog::printMessage(mts::MTSLog::INFO_LEVEL, "[%s] " format "\r\n", mts::MTSLog::INFO_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 26 #define logDebug(format, ...) \
Mike Fiore 7:683dba5d576f 27 mts::MTSLog::printMessage(mts::MTSLog::DEBUG_LEVEL, "[%s] " format "\r\n", mts::MTSLog::DEBUG_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 28 #define logTrace(format, ...) \
Mike Fiore 7:683dba5d576f 29 mts::MTSLog::printMessage(mts::MTSLog::TRACE_LEVEL, "[%s] " format "\r\n", mts::MTSLog::TRACE_LABEL, ##__VA_ARGS__)
Mike Fiore 1:9f30fbe9e9c1 30 #endif
Mike Fiore 1:9f30fbe9e9c1 31
Mike Fiore 1:9f30fbe9e9c1 32 namespace mts {
Mike Fiore 1:9f30fbe9e9c1 33
Mike Fiore 1:9f30fbe9e9c1 34 class MTSLog
Mike Fiore 1:9f30fbe9e9c1 35 {
Mike Fiore 1:9f30fbe9e9c1 36 public:
Mike Fiore 1:9f30fbe9e9c1 37
Mike Fiore 1:9f30fbe9e9c1 38 /** Enum of log levels.
Mike Fiore 1:9f30fbe9e9c1 39 */
Mike Fiore 1:9f30fbe9e9c1 40 enum logLevel {
Mike Fiore 1:9f30fbe9e9c1 41 NONE_LEVEL = 0,
Mike Fiore 1:9f30fbe9e9c1 42 FATAL_LEVEL = 1,
Mike Fiore 1:9f30fbe9e9c1 43 ERROR_LEVEL = 2,
Mike Fiore 1:9f30fbe9e9c1 44 WARNING_LEVEL = 3,
Mike Fiore 1:9f30fbe9e9c1 45 INFO_LEVEL = 4,
Mike Fiore 1:9f30fbe9e9c1 46 DEBUG_LEVEL = 5,
Mike Fiore 1:9f30fbe9e9c1 47 TRACE_LEVEL = 6
Mike Fiore 1:9f30fbe9e9c1 48 };
Mike Fiore 1:9f30fbe9e9c1 49
Mike Fiore 1:9f30fbe9e9c1 50 /** Print log message.
Mike Fiore 1:9f30fbe9e9c1 51 */
Mike Fiore 1:9f30fbe9e9c1 52 static void printMessage(int level, const char* format, ...);
Mike Fiore 1:9f30fbe9e9c1 53
Mike Fiore 1:9f30fbe9e9c1 54 /** Determine if the given level is currently printable.
Mike Fiore 1:9f30fbe9e9c1 55 */
Mike Fiore 1:9f30fbe9e9c1 56 static bool printable(int level);
Mike Fiore 1:9f30fbe9e9c1 57
Mike Fiore 1:9f30fbe9e9c1 58 /** Set log level
Mike Fiore 1:9f30fbe9e9c1 59 * Messages with lower priority than the current level will not be printed.
Mike Fiore 1:9f30fbe9e9c1 60 * If the level is set to NONE, no messages will print.
Mike Fiore 1:9f30fbe9e9c1 61 */
Mike Fiore 1:9f30fbe9e9c1 62 static void setLogLevel(int level);
Mike Fiore 1:9f30fbe9e9c1 63
Mike Fiore 1:9f30fbe9e9c1 64 /** Get the current log level.
Mike Fiore 1:9f30fbe9e9c1 65 */
Mike Fiore 1:9f30fbe9e9c1 66 static int getLogLevel();
Mike Fiore 1:9f30fbe9e9c1 67
Mike Fiore 1:9f30fbe9e9c1 68 /** Get string representation of the current log level.
Mike Fiore 1:9f30fbe9e9c1 69 */
Mike Fiore 1:9f30fbe9e9c1 70 static const char* getLogLevelString();
Mike Fiore 1:9f30fbe9e9c1 71
Mike Fiore 1:9f30fbe9e9c1 72 static const char* NONE_LABEL;
Mike Fiore 1:9f30fbe9e9c1 73 static const char* FATAL_LABEL;
Mike Fiore 1:9f30fbe9e9c1 74 static const char* ERROR_LABEL;
Mike Fiore 1:9f30fbe9e9c1 75 static const char* WARNING_LABEL;
Mike Fiore 1:9f30fbe9e9c1 76 static const char* INFO_LABEL;
Mike Fiore 1:9f30fbe9e9c1 77 static const char* DEBUG_LABEL;
Mike Fiore 1:9f30fbe9e9c1 78 static const char* TRACE_LABEL;
Mike Fiore 1:9f30fbe9e9c1 79
Mike Fiore 1:9f30fbe9e9c1 80 private:
Mike Fiore 1:9f30fbe9e9c1 81
Mike Fiore 1:9f30fbe9e9c1 82 /** Constructor
Mike Fiore 1:9f30fbe9e9c1 83 */
Mike Fiore 1:9f30fbe9e9c1 84 MTSLog();
Mike Fiore 1:9f30fbe9e9c1 85
Mike Fiore 1:9f30fbe9e9c1 86 static int currentLevel;
Mike Fiore 1:9f30fbe9e9c1 87
Mike Fiore 1:9f30fbe9e9c1 88 };
Mike Fiore 1:9f30fbe9e9c1 89
Mike Fiore 1:9f30fbe9e9c1 90 }
Mike Fiore 1:9f30fbe9e9c1 91
Mike Fiore 1:9f30fbe9e9c1 92 #endif