From 06d1d0442276a05b6caad6e3468f4afb1e8ee5df Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 28 Jun 2020 00:03:11 +0800 Subject: ... --- src/common/Logger.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/common/logger.cpp | 65 --------------------------------------------------- 2 files changed, 65 insertions(+), 65 deletions(-) create mode 100644 src/common/Logger.cpp delete mode 100644 src/common/logger.cpp (limited to 'src/common') diff --git a/src/common/Logger.cpp b/src/common/Logger.cpp new file mode 100644 index 00000000..ed9f9e64 --- /dev/null +++ b/src/common/Logger.cpp @@ -0,0 +1,65 @@ +#include "cru/common/Logger.hpp" + +#include +#include +#include +#include +#include + +namespace cru::log { +namespace { +Logger *CreateLogger() { + const auto logger = new Logger(); + logger->AddSource(std::make_unique()); + 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 { +std::string_view LogLevelToString(LogLevel level) { + switch (level) { + case LogLevel::Debug: + return "DEBUG"; + case LogLevel::Info: + return "INFO"; + case LogLevel::Warn: + return "WARN"; + case LogLevel::Error: + return "ERROR"; + default: + std::abort(); + } +} +} // namespace + +void Logger::Log(LogLevel level, const std::string_view &s) { +#ifndef CRU_DEBUG + if (level == LogLevel::Debug) { + return; + } +#endif + for (const auto &source : sources_) { + auto now = std::time(nullptr); + std::array buffer; + std::strftime(buffer.data(), 50, "%c", std::localtime(&now)); + + source->Write(level, fmt::format("[{}] {}: {}\n", buffer.data(), + LogLevelToString(level), s)); + } +} +} // namespace cru::log diff --git a/src/common/logger.cpp b/src/common/logger.cpp deleted file mode 100644 index ed9f9e64..00000000 --- a/src/common/logger.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "cru/common/Logger.hpp" - -#include -#include -#include -#include -#include - -namespace cru::log { -namespace { -Logger *CreateLogger() { - const auto logger = new Logger(); - logger->AddSource(std::make_unique()); - 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 { -std::string_view LogLevelToString(LogLevel level) { - switch (level) { - case LogLevel::Debug: - return "DEBUG"; - case LogLevel::Info: - return "INFO"; - case LogLevel::Warn: - return "WARN"; - case LogLevel::Error: - return "ERROR"; - default: - std::abort(); - } -} -} // namespace - -void Logger::Log(LogLevel level, const std::string_view &s) { -#ifndef CRU_DEBUG - if (level == LogLevel::Debug) { - return; - } -#endif - for (const auto &source : sources_) { - auto now = std::time(nullptr); - std::array buffer; - std::strftime(buffer.data(), 50, "%c", std::localtime(&now)); - - source->Write(level, fmt::format("[{}] {}: {}\n", buffer.data(), - LogLevelToString(level), s)); - } -} -} // namespace cru::log -- cgit v1.2.3