1

update logger

This commit is contained in:
2022-07-16 03:30:35 +02:00
parent 2f7a2a219b
commit 2b92b180f4
2 changed files with 90 additions and 17 deletions

View File

@ -2,9 +2,10 @@
#define __Logger_Include_H_
#include "devices/CGA.h"
#include "lib/OutStream.h"
#include "lib/Semaphore.h"
class Logger {
class Logger : public OutStream {
private:
Logger(const Logger& copy) = delete;
@ -15,7 +16,7 @@ private:
// TODO: Don't mix logs
static const Semaphore sem;
void log(char* message, CGA::color col);
void log(char* message, CGA::color col) const;
public:
Logger(char* name) : name(name) {}
@ -27,17 +28,33 @@ public:
INFO = 3
};
static LogLevel level;
LogLevel current_message_level = Logger::INFO; // Use this to log with manipulators
void trace(char* message);
void debug(char* message);
void error(char* message);
void info(char* message);
void flush() override;
void trace(char* message) const;
void debug(char* message) const;
void error(char* message) const;
void info(char* message) const;
// TODO: Make level change accessible over menu
static void set_level(LogLevel level) {
Logger::level = level;
}
static char* level_to_string(LogLevel level) {
switch (level) {
case Logger::TRACE:
return "TRACE";
case Logger::DEBUG:
return "DEBUG";
case Logger::ERROR:
return "ERROR";
case Logger::INFO:
return "INFO";
}
}
static void enable_kout() {
Logger::kout_enabled = true;
}
@ -52,4 +69,10 @@ public:
}
};
// Manipulatoren
Logger& TRACE(Logger& log);
Logger& DEBUG(Logger& log);
Logger& ERROR(Logger& log);
Logger& INFO(Logger& log);
#endif