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.

MTSLog.cpp

Committer:
Mike Fiore
Date:
2014-05-19
Revision:
4:f4d3bafc71dd
Parent:
1:92c0b062d84d
Child:
6:fca9bc67b15f

File content as of revision 4:f4d3bafc71dd:

#include <stdarg.h>
#include "MTSLog.h"

using namespace mts;

int MTSLog::currentLevel = MTSLog::WARNING_LEVEL;

const char* MTSLog::NONE_LABEL = "NONE";
const char* MTSLog::FATAL_LABEL = "FATAL";
const char* MTSLog::ERROR_LABEL = "ERROR";
const char* MTSLog::WARNING_LABEL = "WARNING";
const char* MTSLog::INFO_LABEL = "INFO";
const char* MTSLog::DEBUG_LABEL = "DEBUG";
const char* MTSLog::TRACE_LABEL = "TRACE";

void MTSLog::printMessage(MTSLog::logLevel level, const char* format, ...) {
    if (printable(level)) {
        va_list argptr;
        va_start(argptr, format);
        vprintf(format, argptr);
        va_end(argptr);
    }
}

bool MTSLog::printable(MTSLog::logLevel level) {
    return level <= currentLevel;
}

void MTSLog::setLogLevel(MTSLog::logLevel level) {
    currentLevel = level;
}

int MTSLog::getLogLevel() {
    return currentLevel;
}

const char* MTSLog::getLogLevelString() {
    switch (currentLevel) {
        case NONE_LEVEL:
            return NONE_LABEL;
        case FATAL_LEVEL:
            return FATAL_LABEL;
        case ERROR_LEVEL:
            return ERROR_LABEL;
        case WARNING_LEVEL:
            return WARNING_LABEL;
        case INFO_LEVEL:
            return INFO_LABEL;
        case DEBUG_LEVEL:
            return DEBUG_LABEL;
        case TRACE_LEVEL:
            return TRACE_LABEL;
        default:
            return "unknown";
    }
}