diff options
author | thejch <[email protected]> | 2024-04-29 08:07:35 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-29 16:07:35 +0100 |
commit | a783cd8f40594b686bc40d52a2af95bedba7a8d5 (patch) | |
tree | e5740d406d61051375de53e17cef731f67f1c80e | |
parent | 33e0bb14786dc22a0c82eaaf097b469d3fdeceea (diff) | |
download | Hyprland-a783cd8f40594b686bc40d52a2af95bedba7a8d5.tar.gz Hyprland-a783cd8f40594b686bc40d52a2af95bedba7a8d5.zip |
log: Add some colors to stdout log 🔴🟡🟢🔵🟣 (#5778)
* add colored log
* add config option
* make it dynamic
-rw-r--r-- | src/config/ConfigManager.cpp | 5 | ||||
-rw-r--r-- | src/debug/Log.cpp | 35 | ||||
-rw-r--r-- | src/debug/Log.hpp | 1 |
3 files changed, 32 insertions, 9 deletions
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 3c1bc80d..4a03b180 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -377,6 +377,7 @@ CConfigManager::CConfigManager() { m_pConfig->addConfigValue("debug:error_limit", Hyprlang::INT{5}); m_pConfig->addConfigValue("debug:watchdog_timeout", Hyprlang::INT{5}); m_pConfig->addConfigValue("debug:disable_scale_checks", Hyprlang::INT{0}); + m_pConfig->addConfigValue("debug:colored_stdout_logs", Hyprlang::INT{1}); m_pConfig->addConfigValue("decoration:rounding", Hyprlang::INT{0}); m_pConfig->addConfigValue("decoration:blur:enabled", Hyprlang::INT{1}); @@ -592,7 +593,7 @@ CConfigManager::CConfigManager() { setDefaultAnimationVars(); resetHLConfig(); - Debug::log(LOG, + Debug::log(INFO, "!!!!HEY YOU, YES YOU!!!!: further logs to stdout / logfile are disabled by default. BEFORE SENDING THIS LOG, ENABLE THEM. Use debug:disable_logs = false to do so: " "https://wiki.hyprland.org/Configuring/Variables/#debug"); @@ -818,6 +819,8 @@ void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) { if (Debug::disableStdout && isFirstLaunch) Debug::log(LOG, "Disabling stdout logs! Check the log for further logs."); + Debug::coloredLogs = reinterpret_cast<int64_t* const*>(m_pConfig->getConfigValuePtr("debug:colored_stdout_logs")->getDataStaticPtr()); + for (auto& m : g_pCompositor->m_vMonitors) { // mark blur dirty g_pHyprOpenGL->markBlurDirtyForMonitor(m.get()); diff --git a/src/debug/Log.cpp b/src/debug/Log.cpp index 9fdf47f8..8b82c852 100644 --- a/src/debug/Log.cpp +++ b/src/debug/Log.cpp @@ -40,13 +40,32 @@ void Debug::log(LogLevel level, std::string str) { if (shuttingDown) return; + std::string coloredStr = str; switch (level) { - case LOG: str = "[LOG] " + str; break; - case WARN: str = "[WARN] " + str; break; - case ERR: str = "[ERR] " + str; break; - case CRIT: str = "[CRITICAL] " + str; break; - case INFO: str = "[INFO] " + str; break; - case TRACE: str = "[TRACE] " + str; break; + case LOG: + str = "[LOG] " + str; + coloredStr = str; + break; + case WARN: + str = "[WARN] " + str; + coloredStr = "\033[1;33m" + str + "\033[0m"; // yellow + break; + case ERR: + str = "[ERR] " + str; + coloredStr = "\033[1;31m" + str + "\033[0m"; // red + break; + case CRIT: + str = "[CRITICAL] " + str; + coloredStr = "\033[1;35m" + str + "\033[0m"; // magenta + break; + case INFO: + str = "[INFO] " + str; + coloredStr = "\033[1;32m" + str + "\033[0m"; // green + break; + case TRACE: + str = "[TRACE] " + str; + coloredStr = "\033[1;34m" + str + "\033[0m"; // blue + break; default: break; } @@ -65,5 +84,5 @@ void Debug::log(LogLevel level, std::string str) { // log it to the stdout too. if (!disableStdout) - std::cout << str << "\n"; -}
\ No newline at end of file + std::cout << ((coloredLogs && !**coloredLogs) ? str : coloredStr) << "\n"; +} diff --git a/src/debug/Log.hpp b/src/debug/Log.hpp index f1dd3eab..abf74065 100644 --- a/src/debug/Log.hpp +++ b/src/debug/Log.hpp @@ -27,6 +27,7 @@ namespace Debug { inline bool disableStdout = false; inline bool trace = false; inline bool shuttingDown = false; + inline int64_t* const* coloredLogs = nullptr; inline std::string rollingLog = ""; // rolling log contains the ROLLING_LOG_SIZE tail of the log |