#include "GwLog.h" class DefaultLogWriter: public GwLogWriter{ public: virtual ~DefaultLogWriter(){}; virtual void write(const char *data){ Serial.print(data); } }; GwLog::GwLog(int level, GwLogWriter *writer){ logLevel=level; if (writer == NULL) writer=new DefaultLogWriter(); this->writer=writer; } void GwLog::logString(const char *fmt,...){ if (! writer) return; va_list args; va_start(args,fmt); vsnprintf(buffer,99,fmt,args); writer->write(prefix.c_str()); writer->write(buffer); writer->write("\n"); } void GwLog::logDebug(int level,const char *fmt,...){ if (level > logLevel) return; if (! writer) return; va_list args; va_start(args,fmt); vsnprintf(buffer,99,fmt,args); writer->write(prefix.c_str()); writer->write(buffer); writer->write("\n"); } void GwLog::setWriter(GwLogWriter *writer){ if (this->writer) delete this->writer; this->writer=writer; }