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;
}