Serial output logger based on the LoggerInterface
Embed:
(wiki syntax)
Show/hide line numbers
LogIt.cpp
00001 #include "LogIt.h" 00002 #include <stdarg.h> 00003 #include <stdio.h> 00004 00005 LogIt::LogIt(mbed::Serial* serial) 00006 { 00007 this->serial = serial; 00008 } 00009 00010 void LogIt::emergency(const char* message, ...) 00011 { 00012 va_list args; 00013 va_start (args, message); 00014 log(EMERGENCY, message, args); 00015 va_end (args); 00016 } 00017 00018 void LogIt::alert(const char* message, ...) 00019 { 00020 va_list args; 00021 va_start (args, message); 00022 log(ALERT, message, args); 00023 va_end (args); 00024 } 00025 00026 void LogIt::critical(const char* message, ...) 00027 { 00028 va_list args; 00029 va_start (args, message); 00030 log(CRITICAL, message, args); 00031 va_end (args); 00032 } 00033 00034 void LogIt::error(const char* message, ...) 00035 { 00036 va_list args; 00037 va_start (args, message); 00038 log(ERROR, message, args); 00039 va_end (args); 00040 } 00041 00042 void LogIt::warning(const char* message, ...) 00043 { 00044 va_list args; 00045 va_start (args, message); 00046 log(WARNING, message, args); 00047 va_end (args); 00048 } 00049 00050 void LogIt::notice(const char* message, ...) 00051 { 00052 va_list args; 00053 va_start (args, message); 00054 log(NOTICE, message, args); 00055 va_end (args); 00056 } 00057 00058 void LogIt::info(const char* message, ...) 00059 { 00060 va_list args; 00061 va_start (args, message); 00062 log(INFO, message, args); 00063 va_end (args); 00064 } 00065 00066 void LogIt::debug(const char* message, ...) 00067 { 00068 va_list args; 00069 va_start (args, message); 00070 log(DEBUG,message, args); 00071 va_end (args); 00072 } 00073 00074 void LogIt::log(Level level, const char* message, ...) 00075 { 00076 va_list args; 00077 va_start (args, message); 00078 log(level,message, args); 00079 va_end (args); 00080 } 00081 00082 void LogIt::log(Level level, const char* message, va_list args) 00083 { 00084 if(level > this->level){ return; } 00085 char levelString[16]; 00086 switch(level) 00087 { 00088 case EMERGENCY: 00089 strcpy(levelString, "EMERGENCY"); 00090 break; 00091 case ALERT: 00092 strcpy(levelString, "ALERT"); 00093 break; 00094 case CRITICAL: 00095 strcpy(levelString, "CRITICAL"); 00096 break; 00097 case ERROR: 00098 strcpy(levelString, "ERROR"); 00099 break; 00100 case WARNING: 00101 strcpy(levelString, "WARNING"); 00102 break; 00103 case NOTICE: 00104 strcpy(levelString, "NOTICE"); 00105 break; 00106 case INFO: 00107 strcpy(levelString, "INFO"); 00108 break; 00109 case DEBUG: 00110 strcpy(levelString, "DEBUG"); 00111 break; 00112 default: 00113 strcpy(levelString, "DEBUG"); 00114 break; 00115 } 00116 char buffer[256]; 00117 //va_list args; 00118 //va_start (args, message); 00119 vsprintf (buffer,message, args); 00120 serial->printf("%9s: %s\r\n", levelString, buffer); 00121 //va_end (args); 00122 } 00123 00124 void LogIt::setLevel(Level level) 00125 { 00126 this->level = level; 00127 }
Generated on Thu Jul 21 2022 02:21:47 by 1.7.2