diff --git a/include/hyprutils/cli/Logger.hpp b/include/hyprutils/cli/Logger.hpp index 3d2d9bd..269384e 100644 --- a/include/hyprutils/cli/Logger.hpp +++ b/include/hyprutils/cli/Logger.hpp @@ -82,10 +82,13 @@ namespace Hyprutils::CLI { // Allow move CLoggerConnection(CLoggerConnection&&) = default; - void setName(const std::string_view& name); - void setLogLevel(eLogLevel level); + void setName(const std::string_view& name); + void setLogLevel(eLogLevel level); - void log(eLogLevel level, const std::string_view& msg); + void log(eLogLevel level, const std::string_view& msg); + + CLogger* getLogger(); + void redirect(CLogger& logger); template // NOLINTNEXTLINE diff --git a/src/cli/Logger.cpp b/src/cli/Logger.cpp index 32d37a4..5c5eb5b 100644 --- a/src/cli/Logger.cpp +++ b/src/cli/Logger.cpp @@ -179,3 +179,15 @@ void CLoggerConnection::log(eLogLevel level, const std::string_view& msg) { m_impl->log(level, msg, m_name); } + +CLogger* CLoggerConnection::getLogger() { + if (!m_impl) + return nullptr; + + return m_logger; +} + +void CLoggerConnection::redirect(CLogger& logger) { + m_impl = logger.m_impl; + m_logger = &logger; +}