aboutsummaryrefslogtreecommitdiff
path: root/include/cru/base/log/Logger.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-10-11 19:30:36 +0800
committerYuqian Yang <crupest@crupest.life>2025-10-11 19:30:36 +0800
commitea80856073d4896da5df78d60369b327346a0b56 (patch)
treec5bd85b508374066a66864ba1317129ac49db6fc /include/cru/base/log/Logger.h
parent9768b98d46982501c3b34c171aa51389b06add3b (diff)
downloadcru-ea80856073d4896da5df78d60369b327346a0b56.tar.gz
cru-ea80856073d4896da5df78d60369b327346a0b56.tar.bz2
cru-ea80856073d4896da5df78d60369b327346a0b56.zip
Split and log debug tag.
Diffstat (limited to 'include/cru/base/log/Logger.h')
-rw-r--r--include/cru/base/log/Logger.h8
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_;