Utility library for MTS Socket Modem Arduino Shield devices from Multi-Tech Systems

Dependents:   mtsas mtsas thermostat_fan_demo--fan mtsas ... more

NOTE: MTS-Utils has moved to GitHub. This version will not be updated. For updates, go to the GitHub version.

Committer:
Mike Fiore
Date:
Mon Jun 08 15:30:12 2015 -0500
Revision:
13:4709c2dfcd11
Parent:
6:fca9bc67b15f
Child:
14:1d88cf5266c8
update to 25a04c8ca1d5f2d503bf327e58caa949b8f1778a of internal repo

Who changed what in which revision?

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