Serial output logger based on the LoggerInterface
LogIt.cpp
- Committer:
- sillevl
- Date:
- 2016-11-24
- Revision:
- 0:0c84a9b17408
- Child:
- 1:5c3eeae51c21
File content as of revision 0:0c84a9b17408:
#include "LogIt.h" #include <stdarg.h> #include <stdio.h> LogIt::LogIt(Serial* serial) { this->serial = serial; } void LogIt::emergency(char* message, ...) { va_list args; va_start (args, message); log(EMERGENCY, message, args); va_end (args); } void LogIt::alert(char* message, ...) { va_list args; va_start (args, message); log(ALERT, message, args); va_end (args); } void LogIt::critical(char* message, ...) { va_list args; va_start (args, message); log(CRITICAL, message, args); va_end (args); } void LogIt::error(char* message, ...) { va_list args; va_start (args, message); log(ERROR, message, args); va_end (args); } void LogIt::warning(char* message, ...) { va_list args; va_start (args, message); log(WARNING, message, args); va_end (args); } void LogIt::notice(char* message, ...) { va_list args; va_start (args, message); log(NOTICE, message, args); va_end (args); } void LogIt::info(char* message, ...) { va_list args; va_start (args, message); log(INFO, message, args); va_end (args); } void LogIt::debug(char* message, ...) { va_list args; va_start (args, message); log(DEBUG,message, args); va_end (args); } void LogIt::log(Level level, char* message, ...) { 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; }