add overloads for bse::string
This commit is contained in:
@ -4,20 +4,19 @@
|
||||
SpinLock Logger::sem;
|
||||
bool Logger::kout_enabled = true;
|
||||
bool Logger::serial_enabled = true;
|
||||
// const Semaphore Logger::sem = Semaphore(1);
|
||||
|
||||
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 ";
|
||||
constexpr const char* ansi_red = "\033[1;31m";
|
||||
constexpr const char* ansi_green = "\033[1;32m";
|
||||
constexpr const char* ansi_yellow = "\033[1;33m";
|
||||
constexpr const char* ansi_blue = "\033[1;34m";
|
||||
constexpr const char* ansi_magenta = "\033[1;35m";
|
||||
constexpr const char* ansi_cyan = "\033[1;36m";
|
||||
constexpr const char* ansi_white = "\033[1;37m";
|
||||
constexpr const char* ansi_default = "\033[0;39m ";
|
||||
|
||||
void Logger::log(char* message, CGA::color col) const {
|
||||
void Logger::log(const char* message, CGA::color col) const {
|
||||
if (Logger::kout_enabled) {
|
||||
CGA::color old_col = kout.color_fg;
|
||||
kout << fgc(col)
|
||||
@ -55,16 +54,16 @@ void Logger::flush() {
|
||||
|
||||
switch (this->current_message_level) {
|
||||
case Logger::TRACE:
|
||||
this->trace(this->buffer);
|
||||
this->trace(&buffer);
|
||||
break;
|
||||
case Logger::DEBUG:
|
||||
this->debug(this->buffer);
|
||||
this->debug(&buffer);
|
||||
break;
|
||||
case Logger::ERROR:
|
||||
this->error(this->buffer);
|
||||
this->error(&buffer);
|
||||
break;
|
||||
case Logger::INFO:
|
||||
this->info(this->buffer);
|
||||
this->info(&buffer);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -73,29 +72,41 @@ void Logger::flush() {
|
||||
Logger::unlock();
|
||||
}
|
||||
|
||||
void Logger::trace(char* message) const {
|
||||
void Logger::trace(const char* message) const {
|
||||
if (Logger::level <= Logger::TRACE) {
|
||||
this->log(message, CGA::WHITE);
|
||||
}
|
||||
}
|
||||
void Logger::trace(const bse::string& message) const {
|
||||
trace((const char*)message);
|
||||
}
|
||||
|
||||
void Logger::debug(char* message) const {
|
||||
void Logger::debug(const char* message) const {
|
||||
if (Logger::level <= Logger::DEBUG) {
|
||||
this->log(message, CGA::LIGHT_MAGENTA);
|
||||
}
|
||||
}
|
||||
void Logger::debug(const bse::string& message) const {
|
||||
debug((const char*)message);
|
||||
}
|
||||
|
||||
void Logger::error(char* message) const {
|
||||
void Logger::error(const char* message) const {
|
||||
if (Logger::level <= Logger::ERROR) {
|
||||
this->log(message, CGA::LIGHT_RED);
|
||||
}
|
||||
}
|
||||
void Logger::error(const bse::string& message) const {
|
||||
error((const char*)message);
|
||||
}
|
||||
|
||||
void Logger::info(char* message) const {
|
||||
void Logger::info(const char* message) const {
|
||||
if (Logger::level <= Logger::INFO) {
|
||||
this->log(message, CGA::LIGHT_BLUE);
|
||||
}
|
||||
}
|
||||
void Logger::info(const bse::string& message) const {
|
||||
info((const char*)message);
|
||||
}
|
||||
|
||||
// Manipulatoren
|
||||
Logger& TRACE(Logger& log) {
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "devices/CGA.h"
|
||||
#include "lib/OutStream.h"
|
||||
#include "lib/SpinLock.h"
|
||||
#include "user/lib/String.h"
|
||||
|
||||
class Logger : public OutStream {
|
||||
public:
|
||||
@ -20,12 +21,14 @@ private:
|
||||
static bool kout_enabled;
|
||||
static bool serial_enabled;
|
||||
|
||||
void log(char* message, CGA::color col) const;
|
||||
void log(const char* message, CGA::color col) const;
|
||||
|
||||
friend class NamedLogger; // Allow NamedLogger to lock/unlock
|
||||
static SpinLock sem;
|
||||
static void lock() { Logger::sem.acquire(); }
|
||||
static void unlock() { Logger::sem.release(); }
|
||||
// static void lock() {}
|
||||
// static void unlock() {}
|
||||
|
||||
public:
|
||||
enum LogLevel {
|
||||
@ -39,10 +42,14 @@ public:
|
||||
|
||||
void flush() override;
|
||||
|
||||
void trace(char* message) const;
|
||||
void debug(char* message) const;
|
||||
void error(char* message) const;
|
||||
void info(char* message) const;
|
||||
void trace(const char* message) const;
|
||||
void trace(const bse::string& message) const;
|
||||
void debug(const char* message) const;
|
||||
void debug(const bse::string& message) const;
|
||||
void error(const char* message) const;
|
||||
void error(const bse::string& message) const;
|
||||
void info(const char* message) const;
|
||||
void info(const bse::string& message) const;
|
||||
|
||||
// TODO: Make level change accessible over menu
|
||||
static void set_level(LogLevel level) {
|
||||
@ -84,10 +91,10 @@ Logger& INFO(Logger& log);
|
||||
|
||||
class NamedLogger {
|
||||
private:
|
||||
char* name;
|
||||
const char* name;
|
||||
|
||||
public:
|
||||
NamedLogger(char* name) : name(name) {}
|
||||
NamedLogger(const char* name) : name(name) {}
|
||||
|
||||
Logger& trace() {
|
||||
Logger::lock();
|
||||
|
Reference in New Issue
Block a user