summaryrefslogtreecommitdiff
path: root/src/debug/log/Logger.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2025-12-18 17:23:24 +0000
committerGitHub <noreply@github.com>2025-12-18 17:23:24 +0000
commit6175ecd4c4ba817c4620f66a75e1e11da7c7a8ca (patch)
treecf73852f1fc08b1dcee5a3a7380f914aaad9c50a /src/debug/log/Logger.cpp
parentf88deb928a0f7dc02f427473f8c29e8f2bed14a3 (diff)
debug: move to hyprutils' logger (#12673)
Diffstat (limited to 'src/debug/log/Logger.cpp')
-rw-r--r--src/debug/log/Logger.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/debug/log/Logger.cpp b/src/debug/log/Logger.cpp
new file mode 100644
index 00000000..44b82a50
--- /dev/null
+++ b/src/debug/log/Logger.cpp
@@ -0,0 +1,64 @@
+#include "Logger.hpp"
+#include "RollingLogFollow.hpp"
+
+#include "../../defines.hpp"
+
+#include "../../managers/HookSystemManager.hpp"
+#include "../../config/ConfigValue.hpp"
+
+using namespace Log;
+
+CLogger::CLogger() {
+ const auto IS_TRACE = Env::isTrace();
+ m_logger.setLogLevel(IS_TRACE ? Hyprutils::CLI::LOG_TRACE : Hyprutils::CLI::LOG_DEBUG);
+}
+
+void CLogger::log(Hyprutils::CLI::eLogLevel level, const std::string_view& str) {
+
+ static bool TRACE = Env::isTrace();
+
+ if (!m_logsEnabled)
+ return;
+
+ if (level == Hyprutils::CLI::LOG_TRACE && !TRACE)
+ return;
+
+ if (SRollingLogFollow::get().isRunning())
+ SRollingLogFollow::get().addLog(str);
+
+ m_logger.log(level, str);
+}
+
+void CLogger::initIS(const std::string_view& IS) {
+ // NOLINTNEXTLINE
+ m_logger.setOutputFile(std::string{IS} + (ISDEBUG ? "/hyprlandd.log" : "/hyprland.log"));
+ m_logger.setEnableRolling(true);
+ m_logger.setEnableColor(false);
+ m_logger.setEnableStdout(true);
+ m_logger.setTime(false);
+}
+
+void CLogger::initCallbacks() {
+ static auto P = g_pHookSystem->hookDynamic("configReloaded", [this](void* hk, SCallbackInfo& info, std::any param) { recheckCfg(); });
+ recheckCfg();
+}
+
+void CLogger::recheckCfg() {
+ static auto PDISABLELOGS = CConfigValue<Hyprlang::INT>("debug:disable_logs");
+ static auto PDISABLETIME = CConfigValue<Hyprlang::INT>("debug:disable_time");
+ static auto PENABLESTDOUT = CConfigValue<Hyprlang::INT>("debug:enable_stdout_logs");
+ static auto PENABLECOLOR = CConfigValue<Hyprlang::INT>("debug:colored_stdout_logs");
+
+ m_logger.setEnableStdout(!*PDISABLELOGS && *PENABLESTDOUT);
+ m_logsEnabled = !*PDISABLELOGS;
+ m_logger.setTime(!*PDISABLETIME);
+ m_logger.setEnableColor(*PENABLECOLOR);
+}
+
+const std::string& CLogger::rolling() {
+ return m_logger.rollingLog();
+}
+
+Hyprutils::CLI::CLogger& CLogger::hu() {
+ return m_logger;
+}