From f6c0cc03509255ffa4dfd6e2822fce840dd0b181 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Thu, 18 Aug 2022 12:17:16 +0200 Subject: [PATCH] Add BCLog::Logger::m_category_log_levels data member and getter/setter Co-authored-by: "klementtan " --- src/logging.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/logging.h b/src/logging.h index e6cf451b554..fd806ce1422 100644 --- a/src/logging.h +++ b/src/logging.h @@ -17,6 +17,7 @@ #include #include #include +#include #include static const bool DEFAULT_LOGTIMEMICROS = false; @@ -92,6 +93,9 @@ namespace BCLog { */ std::atomic_bool m_started_new_line{true}; + //! Category-specific log level. Overrides `m_log_level`. + std::unordered_map m_category_log_levels GUARDED_BY(m_cs); + //! If there is no category-specific log level, all logs with a severity //! level lower than `m_log_level` will be ignored. std::atomic m_log_level{DEFAULT_LOG_LEVEL}; @@ -148,6 +152,17 @@ namespace BCLog { void ShrinkDebugFile(); + std::unordered_map CategoryLevels() const + { + StdLockGuard scoped_lock(m_cs); + return m_category_log_levels; + } + void SetCategoryLogLevel(const std::unordered_map& levels) + { + StdLockGuard scoped_lock(m_cs); + m_category_log_levels = levels; + } + Level LogLevel() const { return m_log_level.load(); } void SetLogLevel(Level level) { m_log_level = level; }