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 May 19 08:22:30 2014 -0500
Revision:
1:92c0b062d84d
Child:
4:f4d3bafc71dd
MTSLog: implement MTSLog

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Mike Fiore 1:92c0b062d84d 1 #include "mbed.h"
Mike Fiore 1:92c0b062d84d 2 #include <stdarg.h>
Mike Fiore 1:92c0b062d84d 3 #include "MTSLog.h"
Mike Fiore 1:92c0b062d84d 4
Mike Fiore 1:92c0b062d84d 5 using namespace mts;
Mike Fiore 1:92c0b062d84d 6
Mike Fiore 1:92c0b062d84d 7 int MTSLog::currentLevel = MTSLog::WARNING_LEVEL;
Mike Fiore 1:92c0b062d84d 8
Mike Fiore 1:92c0b062d84d 9 const char* MTSLog::NONE_LABEL = "NONE";
Mike Fiore 1:92c0b062d84d 10 const char* MTSLog::FATAL_LABEL = "FATAL";
Mike Fiore 1:92c0b062d84d 11 const char* MTSLog::ERROR_LABEL = "ERROR";
Mike Fiore 1:92c0b062d84d 12 const char* MTSLog::WARNING_LABEL = "WARNING";
Mike Fiore 1:92c0b062d84d 13 const char* MTSLog::INFO_LABEL = "INFO";
Mike Fiore 1:92c0b062d84d 14 const char* MTSLog::DEBUG_LABEL = "DEBUG";
Mike Fiore 1:92c0b062d84d 15 const char* MTSLog::TRACE_LABEL = "TRACE";
Mike Fiore 1:92c0b062d84d 16
Mike Fiore 1:92c0b062d84d 17 void MTSLog::printMessage(MTSLog::logLevel level, const char* format, ...) {
Mike Fiore 1:92c0b062d84d 18 if (printable(level)) {
Mike Fiore 1:92c0b062d84d 19 va_list argptr;
Mike Fiore 1:92c0b062d84d 20 va_start(argptr, format);
Mike Fiore 1:92c0b062d84d 21 vprintf(format, argptr);
Mike Fiore 1:92c0b062d84d 22 va_end(argptr);
Mike Fiore 1:92c0b062d84d 23 }
Mike Fiore 1:92c0b062d84d 24 }
Mike Fiore 1:92c0b062d84d 25
Mike Fiore 1:92c0b062d84d 26 bool MTSLog::printable(MTSLog::logLevel level) {
Mike Fiore 1:92c0b062d84d 27 return level <= currentLevel;
Mike Fiore 1:92c0b062d84d 28 }
Mike Fiore 1:92c0b062d84d 29
Mike Fiore 1:92c0b062d84d 30 void MTSLog::setLogLevel(MTSLog::logLevel level) {
Mike Fiore 1:92c0b062d84d 31 currentLevel = level;
Mike Fiore 1:92c0b062d84d 32 }
Mike Fiore 1:92c0b062d84d 33
Mike Fiore 1:92c0b062d84d 34 int MTSLog::getLogLevel() {
Mike Fiore 1:92c0b062d84d 35 return currentLevel;
Mike Fiore 1:92c0b062d84d 36 }
Mike Fiore 1:92c0b062d84d 37
Mike Fiore 1:92c0b062d84d 38 const char* MTSLog::getLogLevelString() {
Mike Fiore 1:92c0b062d84d 39 switch (currentLevel) {
Mike Fiore 1:92c0b062d84d 40 case NONE_LEVEL:
Mike Fiore 1:92c0b062d84d 41 return NONE_LABEL;
Mike Fiore 1:92c0b062d84d 42 case FATAL_LEVEL:
Mike Fiore 1:92c0b062d84d 43 return FATAL_LABEL;
Mike Fiore 1:92c0b062d84d 44 case ERROR_LEVEL:
Mike Fiore 1:92c0b062d84d 45 return ERROR_LABEL;
Mike Fiore 1:92c0b062d84d 46 case WARNING_LEVEL:
Mike Fiore 1:92c0b062d84d 47 return WARNING_LABEL;
Mike Fiore 1:92c0b062d84d 48 case INFO_LEVEL:
Mike Fiore 1:92c0b062d84d 49 return INFO_LABEL;
Mike Fiore 1:92c0b062d84d 50 case DEBUG_LEVEL:
Mike Fiore 1:92c0b062d84d 51 return DEBUG_LABEL;
Mike Fiore 1:92c0b062d84d 52 case TRACE_LEVEL:
Mike Fiore 1:92c0b062d84d 53 return TRACE_LABEL;
Mike Fiore 1:92c0b062d84d 54 default:
Mike Fiore 1:92c0b062d84d 55 return "unknown";
Mike Fiore 1:92c0b062d84d 56 }
Mike Fiore 1:92c0b062d84d 57 }