Serial output logger based on the LoggerInterface

Dependencies:   LoggerInterface

Revision:
1:5c3eeae51c21
Parent:
0:0c84a9b17408
--- a/LogIt.cpp	Thu Nov 24 14:26:03 2016 +0000
+++ b/LogIt.cpp	Fri Mar 31 15:40:15 2017 +0200
@@ -2,12 +2,12 @@
 #include <stdarg.h>
 #include <stdio.h>
 
-LogIt::LogIt(Serial* serial)
+LogIt::LogIt(mbed::Serial* serial)
 {
     this->serial = serial;
 }
 
-void LogIt::emergency(char* message, ...)
+void LogIt::emergency(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -15,7 +15,7 @@
     va_end (args);
 }
 
-void LogIt::alert(char* message, ...)
+void LogIt::alert(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -23,7 +23,7 @@
     va_end (args);
 }
 
-void LogIt::critical(char* message, ...)
+void LogIt::critical(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -31,7 +31,7 @@
     va_end (args);
 }
 
-void LogIt::error(char* message, ...)
+void LogIt::error(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -39,7 +39,7 @@
     va_end (args);
 }
 
-void LogIt::warning(char* message, ...)
+void LogIt::warning(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -47,7 +47,7 @@
     va_end (args);
 }
 
-void LogIt::notice(char* message, ...)
+void LogIt::notice(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -55,7 +55,7 @@
     va_end (args);
 }
 
-void LogIt::info(char* message, ...)
+void LogIt::info(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -63,7 +63,7 @@
     va_end (args);
 }
 
-void LogIt::debug(char* message, ...)
+void LogIt::debug(const char* message, ...)
 {
     va_list args;
     va_start (args, message);
@@ -71,7 +71,15 @@
     va_end (args);
 }
 
-void LogIt::log(Level level, char* message, ...)
+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];
@@ -79,41 +87,41 @@
     {
         case EMERGENCY:
             strcpy(levelString, "EMERGENCY");
-            break;   
+            break;
         case ALERT:
             strcpy(levelString, "ALERT");
-            break;   
+            break;
         case CRITICAL:
             strcpy(levelString, "CRITICAL");
-            break;   
+            break;
         case ERROR:
             strcpy(levelString, "ERROR");
-            break;   
+            break;
         case WARNING:
             strcpy(levelString, "WARNING");
-            break;   
+            break;
         case NOTICE:
             strcpy(levelString, "NOTICE");
-            break;   
+            break;
         case INFO:
             strcpy(levelString, "INFO");
-            break;   
+            break;
         case DEBUG:
             strcpy(levelString, "DEBUG");
-            break;   
+            break;
         default:
             strcpy(levelString, "DEBUG");
-            break;   
+            break;
     }
     char buffer[256];
-    va_list args;
-    va_start (args, message);
+    //va_list args;
+    //va_start (args, message);
     vsprintf (buffer,message, args);
     serial->printf("%9s: %s\r\n", levelString, buffer);
-    va_end (args);
+    //va_end (args);
 }
 
 void LogIt::setLevel(Level level)
 {
     this->level = level;
-}
\ No newline at end of file
+}