#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