Serial output logger based on the LoggerInterface

Dependencies:   LoggerInterface

Committer:
Sille Van Landschoot
Date:
Sun Apr 02 13:51:38 2017 +0200
Revision:
5:8cd22c68d239
Parent:
1:5c3eeae51c21
solve merge bug in LogIt.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sillevl 0:0c84a9b17408 1 #include "LogIt.h"
sillevl 0:0c84a9b17408 2 #include <stdarg.h>
sillevl 0:0c84a9b17408 3 #include <stdio.h>
sillevl 0:0c84a9b17408 4
Sille Van Landschoot 1:5c3eeae51c21 5 LogIt::LogIt(mbed::Serial* serial)
sillevl 0:0c84a9b17408 6 {
sillevl 0:0c84a9b17408 7 this->serial = serial;
sillevl 0:0c84a9b17408 8 }
sillevl 0:0c84a9b17408 9
Sille Van Landschoot 1:5c3eeae51c21 10 void LogIt::emergency(const char* message, ...)
sillevl 0:0c84a9b17408 11 {
sillevl 0:0c84a9b17408 12 va_list args;
sillevl 0:0c84a9b17408 13 va_start (args, message);
sillevl 0:0c84a9b17408 14 log(EMERGENCY, message, args);
sillevl 0:0c84a9b17408 15 va_end (args);
sillevl 0:0c84a9b17408 16 }
sillevl 0:0c84a9b17408 17
Sille Van Landschoot 1:5c3eeae51c21 18 void LogIt::alert(const char* message, ...)
sillevl 0:0c84a9b17408 19 {
sillevl 0:0c84a9b17408 20 va_list args;
sillevl 0:0c84a9b17408 21 va_start (args, message);
sillevl 0:0c84a9b17408 22 log(ALERT, message, args);
sillevl 0:0c84a9b17408 23 va_end (args);
sillevl 0:0c84a9b17408 24 }
sillevl 0:0c84a9b17408 25
Sille Van Landschoot 1:5c3eeae51c21 26 void LogIt::critical(const char* message, ...)
sillevl 0:0c84a9b17408 27 {
sillevl 0:0c84a9b17408 28 va_list args;
sillevl 0:0c84a9b17408 29 va_start (args, message);
sillevl 0:0c84a9b17408 30 log(CRITICAL, message, args);
sillevl 0:0c84a9b17408 31 va_end (args);
sillevl 0:0c84a9b17408 32 }
sillevl 0:0c84a9b17408 33
Sille Van Landschoot 1:5c3eeae51c21 34 void LogIt::error(const char* message, ...)
sillevl 0:0c84a9b17408 35 {
sillevl 0:0c84a9b17408 36 va_list args;
sillevl 0:0c84a9b17408 37 va_start (args, message);
sillevl 0:0c84a9b17408 38 log(ERROR, message, args);
sillevl 0:0c84a9b17408 39 va_end (args);
sillevl 0:0c84a9b17408 40 }
sillevl 0:0c84a9b17408 41
Sille Van Landschoot 1:5c3eeae51c21 42 void LogIt::warning(const char* message, ...)
sillevl 0:0c84a9b17408 43 {
sillevl 0:0c84a9b17408 44 va_list args;
sillevl 0:0c84a9b17408 45 va_start (args, message);
sillevl 0:0c84a9b17408 46 log(WARNING, message, args);
sillevl 0:0c84a9b17408 47 va_end (args);
sillevl 0:0c84a9b17408 48 }
sillevl 0:0c84a9b17408 49
Sille Van Landschoot 1:5c3eeae51c21 50 void LogIt::notice(const char* message, ...)
sillevl 0:0c84a9b17408 51 {
sillevl 0:0c84a9b17408 52 va_list args;
sillevl 0:0c84a9b17408 53 va_start (args, message);
sillevl 0:0c84a9b17408 54 log(NOTICE, message, args);
sillevl 0:0c84a9b17408 55 va_end (args);
sillevl 0:0c84a9b17408 56 }
sillevl 0:0c84a9b17408 57
Sille Van Landschoot 1:5c3eeae51c21 58 void LogIt::info(const char* message, ...)
sillevl 0:0c84a9b17408 59 {
sillevl 0:0c84a9b17408 60 va_list args;
sillevl 0:0c84a9b17408 61 va_start (args, message);
sillevl 0:0c84a9b17408 62 log(INFO, message, args);
sillevl 0:0c84a9b17408 63 va_end (args);
sillevl 0:0c84a9b17408 64 }
sillevl 0:0c84a9b17408 65
Sille Van Landschoot 1:5c3eeae51c21 66 void LogIt::debug(const char* message, ...)
sillevl 0:0c84a9b17408 67 {
sillevl 0:0c84a9b17408 68 va_list args;
sillevl 0:0c84a9b17408 69 va_start (args, message);
sillevl 0:0c84a9b17408 70 log(DEBUG,message, args);
sillevl 0:0c84a9b17408 71 va_end (args);
sillevl 0:0c84a9b17408 72 }
sillevl 0:0c84a9b17408 73
Sille Van Landschoot 1:5c3eeae51c21 74 void LogIt::log(Level level, const char* message, ...)
Sille Van Landschoot 1:5c3eeae51c21 75 {
Sille Van Landschoot 1:5c3eeae51c21 76 va_list args;
Sille Van Landschoot 1:5c3eeae51c21 77 va_start (args, message);
Sille Van Landschoot 1:5c3eeae51c21 78 log(level,message, args);
Sille Van Landschoot 1:5c3eeae51c21 79 va_end (args);
Sille Van Landschoot 1:5c3eeae51c21 80 }
Sille Van Landschoot 1:5c3eeae51c21 81
Sille Van Landschoot 1:5c3eeae51c21 82 void LogIt::log(Level level, const char* message, va_list args)
sillevl 0:0c84a9b17408 83 {
sillevl 0:0c84a9b17408 84 if(level > this->level){ return; }
sillevl 0:0c84a9b17408 85 char levelString[16];
sillevl 0:0c84a9b17408 86 switch(level)
sillevl 0:0c84a9b17408 87 {
sillevl 0:0c84a9b17408 88 case EMERGENCY:
sillevl 0:0c84a9b17408 89 strcpy(levelString, "EMERGENCY");
Sille Van Landschoot 1:5c3eeae51c21 90 break;
sillevl 0:0c84a9b17408 91 case ALERT:
sillevl 0:0c84a9b17408 92 strcpy(levelString, "ALERT");
Sille Van Landschoot 1:5c3eeae51c21 93 break;
sillevl 0:0c84a9b17408 94 case CRITICAL:
sillevl 0:0c84a9b17408 95 strcpy(levelString, "CRITICAL");
Sille Van Landschoot 1:5c3eeae51c21 96 break;
sillevl 0:0c84a9b17408 97 case ERROR:
sillevl 0:0c84a9b17408 98 strcpy(levelString, "ERROR");
Sille Van Landschoot 1:5c3eeae51c21 99 break;
sillevl 0:0c84a9b17408 100 case WARNING:
sillevl 0:0c84a9b17408 101 strcpy(levelString, "WARNING");
Sille Van Landschoot 1:5c3eeae51c21 102 break;
sillevl 0:0c84a9b17408 103 case NOTICE:
sillevl 0:0c84a9b17408 104 strcpy(levelString, "NOTICE");
Sille Van Landschoot 1:5c3eeae51c21 105 break;
sillevl 0:0c84a9b17408 106 case INFO:
sillevl 0:0c84a9b17408 107 strcpy(levelString, "INFO");
Sille Van Landschoot 1:5c3eeae51c21 108 break;
sillevl 0:0c84a9b17408 109 case DEBUG:
sillevl 0:0c84a9b17408 110 strcpy(levelString, "DEBUG");
Sille Van Landschoot 1:5c3eeae51c21 111 break;
sillevl 0:0c84a9b17408 112 default:
sillevl 0:0c84a9b17408 113 strcpy(levelString, "DEBUG");
Sille Van Landschoot 1:5c3eeae51c21 114 break;
sillevl 0:0c84a9b17408 115 }
sillevl 0:0c84a9b17408 116 char buffer[256];
Sille Van Landschoot 1:5c3eeae51c21 117 //va_list args;
Sille Van Landschoot 1:5c3eeae51c21 118 //va_start (args, message);
sillevl 0:0c84a9b17408 119 vsprintf (buffer,message, args);
sillevl 0:0c84a9b17408 120 serial->printf("%9s: %s\r\n", levelString, buffer);
Sille Van Landschoot 1:5c3eeae51c21 121 //va_end (args);
sillevl 0:0c84a9b17408 122 }
sillevl 0:0c84a9b17408 123
sillevl 0:0c84a9b17408 124 void LogIt::setLevel(Level level)
sillevl 0:0c84a9b17408 125 {
sillevl 0:0c84a9b17408 126 this->level = level;
Sille Van Landschoot 1:5c3eeae51c21 127 }