diff options
author | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-25 20:59:34 +0200 |
---|---|---|
committer | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-10-25 20:59:34 +0200 |
commit | 15a4c4a1cf67e13be53ef423c51c56488f332ea9 (patch) | |
tree | 661084fc8171089ce32bf779f2b3a85d634b38e4 /src/crepe/util/log.cpp | |
parent | f472e0ba3bf54fc5055cf9f08925bed3f98a1dbc (diff) | |
parent | b3b762a34e7ccb4a0dcd041a693ac7180af16002 (diff) |
merge conficts fixed
Diffstat (limited to 'src/crepe/util/log.cpp')
-rw-r--r-- | src/crepe/util/log.cpp | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/src/crepe/util/log.cpp b/src/crepe/util/log.cpp index 0c2ce1e..6bcc4ae 100644 --- a/src/crepe/util/log.cpp +++ b/src/crepe/util/log.cpp @@ -3,21 +3,34 @@ #include <cstdlib> #include <string> +#include "../api/Config.h" #include "fmt.h" #include "log.h" using namespace crepe::util; +using namespace std; -static const char * const LOG_PREFIX[] = { - [log_level::DEBUG] = "[DBG] ", - [log_level::INFO] = "[INFO] ", - [log_level::WARNING] = "[WARN] ", - [log_level::ERROR] = "[ERR] ", -}; +string log_prefix(LogLevel level) { + switch (level) { + case LogLevel::TRACE: + return LogColor().fg_white().str("[TRACE]") + " "; + case LogLevel::DEBUG: + return LogColor().fg_magenta().str("[DEBUG]") + " "; + case LogLevel::INFO: + return LogColor().fg_blue().str("[INFO]") + " "; + case LogLevel::WARNING: + return LogColor().fg_yellow().str("[WARN]") + " "; + case LogLevel::ERROR: + return LogColor().fg_red().str("[ERROR]") + " "; + } + return ""; +} + +static void log(LogLevel level, const string msg) { + auto & cfg = crepe::api::Config::get_instance(); + if (level < cfg.log.level) return; -static void log(enum log_level level, const std::string & msg) { - using namespace std; - string out = string(LOG_PREFIX[level]) + msg; + string out = log_prefix(level) + msg; if (!out.ends_with("\n")) out += "\n"; // TODO: also log to file or smth @@ -28,11 +41,11 @@ static void log(enum log_level level, const std::string & msg) { void crepe::util::logf(const char * fmt, ...) { va_list args; va_start(args, fmt); - log(log_level::DEBUG, va_stringf(args, fmt)); + log(LogLevel::DEBUG, va_stringf(args, fmt)); va_end(args); } -void crepe::util::logf(log_level level, const char * fmt, ...) { +void crepe::util::logf(LogLevel level, const char * fmt, ...) { va_list args; va_start(args, fmt); log(level, va_stringf(args, fmt)); |