diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/logging.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/logging.h b/src/logging.h index e6cf451b55..fd806ce142 100644 --- a/src/logging.h +++ b/src/logging.h @@ -17,6 +17,7 @@ #include <list> #include <mutex> #include <string> +#include <unordered_map> #include <vector> 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<LogFlags, Level> 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<Level> m_log_level{DEFAULT_LOG_LEVEL}; @@ -148,6 +152,17 @@ namespace BCLog { void ShrinkDebugFile(); + std::unordered_map<LogFlags, Level> CategoryLevels() const + { + StdLockGuard scoped_lock(m_cs); + return m_category_log_levels; + } + void SetCategoryLogLevel(const std::unordered_map<LogFlags, Level>& 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; } |