1

add serial color output

This commit is contained in:
2022-07-16 20:13:50 +02:00
parent 75a77a8394
commit 1575f00717
2 changed files with 30 additions and 4 deletions

View File

@ -7,6 +7,15 @@ bool Logger::serial_enabled = true;
Logger::LogLevel Logger::level = Logger::ERROR; Logger::LogLevel Logger::level = Logger::ERROR;
constexpr char* ansi_red = "\033[1;31m";
constexpr char* ansi_green = "\033[1;32m";
constexpr char* ansi_yellow = "\033[1;33m";
constexpr char* ansi_blue = "\033[1;34m";
constexpr char* ansi_magenta = "\033[1;35m";
constexpr char* ansi_cyan = "\033[1;36m";
constexpr char* ansi_white = "\033[1;37m";
constexpr char* ansi_default = "\033[0;39m ";
void Logger::log(char* message, CGA::color col) const { void Logger::log(char* message, CGA::color col) const {
if (Logger::kout_enabled) { if (Logger::kout_enabled) {
CGA::color old_col = kout.color_fg; CGA::color old_col = kout.color_fg;
@ -17,6 +26,22 @@ void Logger::log(char* message, CGA::color col) const {
kout.flush(); // Don't add newline, Logger already does that kout.flush(); // Don't add newline, Logger already does that
} }
if (Logger::serial_enabled) { if (Logger::serial_enabled) {
switch (col) {
case CGA::WHITE:
serial.write(ansi_white);
break;
case CGA::LIGHT_MAGENTA:
serial.write(ansi_magenta);
break;
case CGA::LIGHT_RED:
serial.write(ansi_red);
break;
case CGA::LIGHT_BLUE:
serial.write(ansi_blue);
break;
default:
serial.write(ansi_default);
}
serial.write(Logger::level_to_string(this->current_message_level)); serial.write(Logger::level_to_string(this->current_message_level));
serial.write("::"); serial.write("::");
serial.write(this->name); serial.write(this->name);
@ -51,25 +76,25 @@ void Logger::flush() {
void Logger::trace(char* message) const { void Logger::trace(char* message) const {
if (Logger::level <= Logger::TRACE) { if (Logger::level <= Logger::TRACE) {
this->log(message, CGA::GREEN); this->log(message, CGA::WHITE);
} }
} }
void Logger::debug(char* message) const { void Logger::debug(char* message) const {
if (Logger::level <= Logger::DEBUG) { if (Logger::level <= Logger::DEBUG) {
this->log(message, CGA::LIGHT_BLUE); this->log(message, CGA::LIGHT_MAGENTA);
} }
} }
void Logger::error(char* message) const { void Logger::error(char* message) const {
if (Logger::level <= Logger::ERROR) { if (Logger::level <= Logger::ERROR) {
this->log(message, CGA::RED); this->log(message, CGA::LIGHT_RED);
} }
} }
void Logger::info(char* message) const { void Logger::info(char* message) const {
if (Logger::level <= Logger::INFO) { if (Logger::level <= Logger::INFO) {
this->log(message, CGA::CYAN); this->log(message, CGA::LIGHT_BLUE);
} }
} }

View File

@ -20,6 +20,7 @@ private:
public: public:
Logger(char* name) : name(name) {} Logger(char* name) : name(name) {}
virtual ~Logger() = default;
enum LogLevel { enum LogLevel {
TRACE, TRACE,