Files
TransparentBox-V1/src/modules/logger/system_logger.h

71 lines
1.3 KiB
C++

#pragma once
#include <Arduino.h>
#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