Serial output logger based on the LoggerInterface

Dependencies:   LoggerInterface

Committer:
sillevl
Date:
Thu Nov 24 14:26:03 2016 +0000
Revision:
0:0c84a9b17408
Child:
1:5c3eeae51c21
Initial serial logger class

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
sillevl 0:0c84a9b17408 5 LogIt::LogIt(Serial* serial)
sillevl 0:0c84a9b17408 6 {
sillevl 0:0c84a9b17408 7 this->serial = serial;
sillevl 0:0c84a9b17408 8 }
sillevl 0:0c84a9b17408 9
sillevl 0:0c84a9b17408 10 void LogIt::emergency(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
sillevl 0:0c84a9b17408 18 void LogIt::alert(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
sillevl 0:0c84a9b17408 26 void LogIt::critical(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
sillevl 0:0c84a9b17408 34 void LogIt::error(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
sillevl 0:0c84a9b17408 42 void LogIt::warning(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
sillevl 0:0c84a9b17408 50 void LogIt::notice(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
sillevl 0:0c84a9b17408 58 void LogIt::info(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
sillevl 0:0c84a9b17408 66 void LogIt::debug(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
sillevl 0:0c84a9b17408 74 void LogIt::log(Level level, char* message, ...)
sillevl 0:0c84a9b17408 75 {
sillevl 0:0c84a9b17408 76 if(level > this->level){ return; }
sillevl 0:0c84a9b17408 77 char levelString[16];
sillevl 0:0c84a9b17408 78 switch(level)
sillevl 0:0c84a9b17408 79 {
sillevl 0:0c84a9b17408 80 case EMERGENCY:
sillevl 0:0c84a9b17408 81 strcpy(levelString, "EMERGENCY");
sillevl 0:0c84a9b17408 82 break;
sillevl 0:0c84a9b17408 83 case ALERT:
sillevl 0:0c84a9b17408 84 strcpy(levelString, "ALERT");
sillevl 0:0c84a9b17408 85 break;
sillevl 0:0c84a9b17408 86 case CRITICAL:
sillevl 0:0c84a9b17408 87 strcpy(levelString, "CRITICAL");
sillevl 0:0c84a9b17408 88 break;
sillevl 0:0c84a9b17408 89 case ERROR:
sillevl 0:0c84a9b17408 90 strcpy(levelString, "ERROR");
sillevl 0:0c84a9b17408 91 break;
sillevl 0:0c84a9b17408 92 case WARNING:
sillevl 0:0c84a9b17408 93 strcpy(levelString, "WARNING");
sillevl 0:0c84a9b17408 94 break;
sillevl 0:0c84a9b17408 95 case NOTICE:
sillevl 0:0c84a9b17408 96 strcpy(levelString, "NOTICE");
sillevl 0:0c84a9b17408 97 break;
sillevl 0:0c84a9b17408 98 case INFO:
sillevl 0:0c84a9b17408 99 strcpy(levelString, "INFO");
sillevl 0:0c84a9b17408 100 break;
sillevl 0:0c84a9b17408 101 case DEBUG:
sillevl 0:0c84a9b17408 102 strcpy(levelString, "DEBUG");
sillevl 0:0c84a9b17408 103 break;
sillevl 0:0c84a9b17408 104 default:
sillevl 0:0c84a9b17408 105 strcpy(levelString, "DEBUG");
sillevl 0:0c84a9b17408 106 break;
sillevl 0:0c84a9b17408 107 }
sillevl 0:0c84a9b17408 108 char buffer[256];
sillevl 0:0c84a9b17408 109 va_list args;
sillevl 0:0c84a9b17408 110 va_start (args, message);
sillevl 0:0c84a9b17408 111 vsprintf (buffer,message, args);
sillevl 0:0c84a9b17408 112 serial->printf("%9s: %s\r\n", levelString, buffer);
sillevl 0:0c84a9b17408 113 va_end (args);
sillevl 0:0c84a9b17408 114 }
sillevl 0:0c84a9b17408 115
sillevl 0:0c84a9b17408 116 void LogIt::setLevel(Level level)
sillevl 0:0c84a9b17408 117 {
sillevl 0:0c84a9b17408 118 this->level = level;
sillevl 0:0c84a9b17408 119 }