Serial output logger based on the LoggerInterface
LogIt.cpp
- Committer:
- Sille Van Landschoot
- Date:
- 2017-04-02
- Revision:
- 5:8cd22c68d239
- Parent:
- 1:5c3eeae51c21
File content as of revision 5:8cd22c68d239:
#include "LogIt.h" #include <stdarg.h> #include <stdio.h> LogIt::LogIt(mbed::Serial* serial) { this->serial = serial; } void LogIt::emergency(const char* message, ...) { va_list args; va_start (args, message); log(EMERGENCY, message, args); va_end (args); } void LogIt::alert(const char* message, ...) { va_list args; va_start (args, message); log(ALERT, message, args); va_end (args); } void LogIt::critical(const char* message, ...) { va_list args; va_start (args, message); log(CRITICAL, message, args); va_end (args); } void LogIt::error(const char* message, ...) { va_list args; va_start (args, message); log(ERROR, message, args); va_end (args); } void LogIt::warning(const char* message, ...) { va_list args; va_start (args, message); log(WARNING, message, args); va_end (args); } void LogIt::notice(const char* message, ...) { va_list args; va_start (args, message); log(NOTICE, message, args); va_end (args); } void LogIt::info(const char* message, ...) { va_list args; va_start (args, message); log(INFO, message, args); va_end (args); } void LogIt::debug(const char* message, ...) { va_list args; va_start (args, message); log(DEBUG,message, args); va_end (args); } void LogIt::log(Level level, const char* message, ...) { va_list args; va_start (args, message); log(level,message, args); va_end (args); } void LogIt::log(Level level, const char* message, va_list args) { if(level > this->level){ return; } char levelString[16]; switch(level) { case EMERGENCY: strcpy(levelString, "EMERGENCY"); break; case ALERT: strcpy(levelString, "ALERT"); break; case CRITICAL: strcpy(levelString, "CRITICAL"); break; case ERROR: strcpy(levelString, "ERROR"); break; case WARNING: strcpy(levelString, "WARNING"); break; case NOTICE: strcpy(levelString, "NOTICE"); break; case INFO: strcpy(levelString, "INFO"); break; case DEBUG: strcpy(levelString, "DEBUG"); break; default: strcpy(levelString, "DEBUG"); break; } char buffer[256]; //va_list args; //va_start (args, message); vsprintf (buffer,message, args); serial->printf("%9s: %s\r\n", levelString, buffer); //va_end (args); } void LogIt::setLevel(Level level) { this->level = level; }