aboutsummaryrefslogtreecommitdiff
path: root/src/common/log
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/log')
-rw-r--r--src/common/log/Logger.cpp88
-rw-r--r--src/common/log/StdioLogTarget.cpp27
2 files changed, 0 insertions, 115 deletions
diff --git a/src/common/log/Logger.cpp b/src/common/log/Logger.cpp
deleted file mode 100644
index 4b07ed87..00000000
--- a/src/common/log/Logger.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-#include "cru/common/log/Logger.h"
-#include "cru/common/log/StdioLogTarget.h"
-
-#include <ctime>
-#include <algorithm>
-
-#ifdef CRU_PLATFORM_WINDOWS
-#include "cru/common/platform/win/DebugLogTarget.h"
-#endif
-
-namespace cru::log {
-Logger *Logger::GetInstance() {
- static Logger logger;
-
- logger.AddLogTarget(std::make_unique<StdioLogTarget>());
-
-#ifdef CRU_PLATFORM_WINDOWS
- logger.AddLogTarget(std::make_unique<platform::win::WinDebugLogTarget>());
-#endif
-
- return &logger;
-}
-
-void Logger::AddLogTarget(std::unique_ptr<ILogTarget> target) {
- std::lock_guard<std::mutex> lock(target_list_mutex_);
- target_list_.push_back(std::move(target));
-}
-
-void Logger::RemoveLogTarget(ILogTarget *target) {
- std::lock_guard<std::mutex> lock(target_list_mutex_);
- target_list_.erase(
- std::remove_if(target_list_.begin(), target_list_.end(),
- [target](const auto &t) { return t.get() == target; }),
- target_list_.end());
-}
-
-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);
-}
-
-String MakeLogFinalMessage(const LogInfo &log_info) {
- return Format(u"[{}] {} {}: {}\n", GetLogTime(),
- LogLevelToString(log_info.level), log_info.tag,
- log_info.message);
-}
-} // namespace
-
-Logger::Logger()
- : log_thread_([this] {
- while (true) {
- auto log_info = log_queue_.Pull();
- std::lock_guard<std::mutex> lock_guard{target_list_mutex_};
- for (const auto &target : target_list_) {
- target->Write(log_info.level, MakeLogFinalMessage(log_info));
- }
- }
- }) {}
-
-Logger::~Logger() { log_thread_.detach(); }
-
-void Logger::Log(LogInfo log_info) {
-#ifndef CRU_DEBUG
- if (log_info.level == LogLevel::Debug) {
- return;
- }
-#endif
- log_queue_.Push(std::move(log_info));
-}
-} // namespace cru::log
diff --git a/src/common/log/StdioLogTarget.cpp b/src/common/log/StdioLogTarget.cpp
deleted file mode 100644
index 7f99dbd1..00000000
--- a/src/common/log/StdioLogTarget.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "cru/common/log/StdioLogTarget.h"
-
-#include <iostream>
-
-namespace cru::log {
-StdioLogTarget::StdioLogTarget() {}
-
-StdioLogTarget::~StdioLogTarget() {}
-
-void StdioLogTarget::Write(log::LogLevel level, StringView s) {
-#ifdef CRU_PLATFORM_WINDOWS
- if (level == log::LogLevel::Error) {
- std::wcerr.write(reinterpret_cast<const wchar_t*>(s.data()), s.size());
- } else {
- std::wcout.write(reinterpret_cast<const wchar_t*>(s.data()), s.size());
- }
-#else
- std::string m = s.ToUtf8();
-
- if (level == log::LogLevel::Error) {
- std::cerr << m;
- } else {
- std::cout << m;
- }
-#endif
-}
-} // namespace cru::log