From ced1a63686e6c64cb574d74a34d1bbd07d0a668e Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 21 Feb 2022 18:44:40 +0800 Subject: ... --- src/common/Logger.cpp | 108 -------------------------------------------------- 1 file changed, 108 deletions(-) delete mode 100644 src/common/Logger.cpp (limited to 'src/common/Logger.cpp') diff --git a/src/common/Logger.cpp b/src/common/Logger.cpp deleted file mode 100644 index 49261396..00000000 --- a/src/common/Logger.cpp +++ /dev/null @@ -1,108 +0,0 @@ -#include "cru/common/Logger.h" - -#include -#include -#include -#include -#include -#include -#include - -namespace cru::log { -namespace { -Logger *CreateLogger() { - const auto logger = new Logger(); - return logger; -} -} // namespace - -Logger *Logger::GetInstance() { - static std::unique_ptr logger{CreateLogger()}; - return logger.get(); -} - -void Logger::AddSource(std::unique_ptr source) { - sources_.push_back(std::move(source)); -} - -void Logger::RemoveSource(ILogSource *source) { - sources_.remove_if([source](const std::unique_ptr &s) { - return s.get() == source; - }); -} - -namespace { -String LogLevelToString(LogLevel level) { - switch (level) { - case LogLevel::Debug: - return u"DEBUG"; - case LogLevel::Info: - return u"INFO"; - case LogLevel::Warn: - return u"WARN"; - case LogLevel::Error: - return u"ERROR"; - default: - std::terminate(); - } -} - -String GetLogTime() { - auto time = std::time(nullptr); - auto calendar = std::localtime(&time); - return Format(u"{}:{}:{}", calendar->tm_hour, calendar->tm_min, - calendar->tm_sec); -} -} // namespace - -void Logger::Log(LogLevel level, StringView message) { -#ifndef CRU_DEBUG - if (level == LogLevel::Debug) { - return; - } -#endif - for (const auto &source : sources_) { - source->Write(level, Format(u"[{}] {}: {}\n", GetLogTime(), - LogLevelToString(level), message)); - } -} - -void Logger::Log(LogLevel level, StringView tag, StringView message) { -#ifndef CRU_DEBUG - if (level == LogLevel::Debug) { - return; - } -#endif - for (const auto &source : sources_) { - source->Write(level, Format(u"[{}] {} {}: {}\n", GetLogTime(), - LogLevelToString(level), tag, message)); - } -} - -namespace { -std::mutex stdio_lock; - -void WriteStdio(LogLevel level, StringView s) { - std::string m = s.ToString().ToUtf8(); - - if (level == LogLevel::Error) { - std::cerr << m; - } else { - std::cout << m; - } -} -} // namespace - -StdioLogSource::StdioLogSource(bool use_lock) : use_lock_(use_lock) {} - -StdioLogSource::~StdioLogSource() {} - -void StdioLogSource::Write(LogLevel level, StringView s) { - if (use_lock_) { - std::lock_guard guard(stdio_lock); - WriteStdio(level, s); - } else { - WriteStdio(level, s); - } -} -} // namespace cru::log -- cgit v1.2.3