update logger
This commit is contained in:
@ -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
|
||||
|
||||
Reference in New Issue
Block a user