diff --git a/src/modules/logger/system_logger.h b/src/modules/logger/system_logger.h new file mode 100644 index 0000000..f87df7e --- /dev/null +++ b/src/modules/logger/system_logger.h @@ -0,0 +1,71 @@ +#pragma once +#include +#include "flags.h" + +class system_logger +{ +private: + HardwareSerial *_output; + int print_message(String pre, String message); +public: + system_logger(HardwareSerial *output); + ~system_logger(); + #ifdef INFO + int info(String message); + #endif + + #ifdef WARN + int warn(String message); + #endif + + #ifdef ERROR + int error(String message); + #endif + + #ifdef DEBUG + int debug(String message); + #endif +}; + +system_logger::system_logger(HardwareSerial *output) +{ + _output = output; +} + +system_logger::~system_logger() +{ +} + +int system_logger::print_message(String pre, String message) { + if (_output->availableForWrite()) { + _output->print(millis()); + _output->print(pre); + _output->println(message); + return 0; + } + return 1; +} + +#ifdef INFO +int system_logger::info(String message) { + return this->print_message(" [INFO] ", message); +} +#endif + +#ifdef WARN +int system_logger::warn(String message) { + return this->print_message(" [WARNING] ", message); +} +#endif + +#ifdef ERROR +int system_logger::error(String message) { + return this->print_message(" [ERROR] ", message); +} +#endif + +#ifdef DEBUG +int system_logger::debug(String message) { + return this->print_message(" [DEBUG] ", message); +} +#endif \ No newline at end of file