diff options
Diffstat (limited to 'include/cru/base/log/Logger.h')
-rw-r--r-- | include/cru/base/log/Logger.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/cru/base/log/Logger.h b/include/cru/base/log/Logger.h index 1ef53654..f44bad72 100644 --- a/include/cru/base/log/Logger.h +++ b/include/cru/base/log/Logger.h @@ -6,7 +6,9 @@ #include <list> #include <memory> #include <mutex> +#include <string_view> #include <thread> +#include <unordered_set> #include <utility> #include <vector> @@ -40,6 +42,11 @@ class CRU_BASE_API Logger : public Object2 { void AddLogTarget(std::unique_ptr<ILogTarget> source); void RemoveLogTarget(ILogTarget* source); + void AddDebugTag(std::string tag); + void RemoveDebugTag(const std::string& tag); + void LoadDebugTagFromEnv(const char* env_var = "CRU_LOG_DEBUG", + std::string sep = ","); + public: void Log(LogLevel level, std::string tag, std::string message) { Log(LogInfo(level, std::move(tag), std::move(message))); @@ -59,6 +66,7 @@ class CRU_BASE_API Logger : public Object2 { private: std::mutex log_queue_mutex_; + std::unordered_set<std::string> debug_tags_; std::condition_variable log_queue_condition_variable_; std::list<LogInfo> log_queue_; bool log_stop_; |