diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-09-07 11:46:11 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-09-07 11:46:11 +0800 |
commit | a0403d95bea3e3a3eaedf71a0d9c6d4e1316bd8c (patch) | |
tree | b97687f99055b04775b63b7bafd2c909a7074cdb /src/base/log | |
parent | 20123151d12a0b01453ab6a36c84e4d3e5ea9504 (diff) | |
download | cru-a0403d95bea3e3a3eaedf71a0d9c6d4e1316bd8c.tar.gz cru-a0403d95bea3e3a3eaedf71a0d9c6d4e1316bd8c.tar.bz2 cru-a0403d95bea3e3a3eaedf71a0d9c6d4e1316bd8c.zip |
Use std::string in logger.
Diffstat (limited to 'src/base/log')
-rw-r--r-- | src/base/log/Logger.cpp | 34 | ||||
-rw-r--r-- | src/base/log/StdioLogTarget.cpp | 9 |
2 files changed, 22 insertions, 21 deletions
diff --git a/src/base/log/Logger.cpp b/src/base/log/Logger.cpp index 8aa8915c..c195cd87 100644 --- a/src/base/log/Logger.cpp +++ b/src/base/log/Logger.cpp @@ -3,6 +3,7 @@ #include <algorithm> #include <ctime> +#include <format> #ifdef CRU_PLATFORM_WINDOWS #include "cru/base/platform/win/DebugLogTarget.h" @@ -35,32 +36,32 @@ void Logger::RemoveLogTarget(ILogTarget *target) { } namespace { -String LogLevelToString(LogLevel level) { +const char *LogLevelToString(LogLevel level) { switch (level) { case LogLevel::Debug: - return u"DEBUG"; + return "DEBUG"; case LogLevel::Info: - return u"INFO"; + return "INFO"; case LogLevel::Warn: - return u"WARN"; + return "WARN"; case LogLevel::Error: - return u"ERROR"; + return "ERROR"; default: std::terminate(); } } -String GetLogTime() { +std::string GetLogTime() { auto time = std::time(nullptr); auto calendar = std::localtime(&time); - return Format(u"{}:{}:{}", calendar->tm_hour, calendar->tm_min, - calendar->tm_sec); + return std::format("{}:{}:{}", 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); +std::string MakeLogFinalMessage(const LogInfo &log_info) { + return std::format("[{}] {} {}: {}\n", GetLogTime(), + LogLevelToString(log_info.level), log_info.tag, + log_info.message); } } // namespace @@ -86,18 +87,19 @@ void Logger::Log(LogInfo log_info) { log_queue_.Push(std::move(log_info)); } -LoggerCppStream::LoggerCppStream(Logger *logger, LogLevel level, String tag) +LoggerCppStream::LoggerCppStream(Logger *logger, LogLevel level, + std::string tag) : logger_(logger), level_(level), tag_(std::move(tag)) {} LoggerCppStream LoggerCppStream::WithLevel(LogLevel level) const { return LoggerCppStream(this->logger_, level, this->tag_); } -LoggerCppStream LoggerCppStream::WithTag(String tag) const { +LoggerCppStream LoggerCppStream::WithTag(std::string tag) const { return LoggerCppStream(this->logger_, this->level_, std::move(tag)); } -void LoggerCppStream::Consume(StringView str) { - this->logger_->Log(this->level_, this->tag_, str.ToString()); +void LoggerCppStream::Consume(std::string_view str) { + this->logger_->Log(this->level_, this->tag_, std::string(str)); } } // namespace cru::log diff --git a/src/base/log/StdioLogTarget.cpp b/src/base/log/StdioLogTarget.cpp index 64ddcacc..45203f2c 100644 --- a/src/base/log/StdioLogTarget.cpp +++ b/src/base/log/StdioLogTarget.cpp @@ -7,20 +7,19 @@ StdioLogTarget::StdioLogTarget() {} StdioLogTarget::~StdioLogTarget() {} -void StdioLogTarget::Write(log::LogLevel level, StringView s) { +void StdioLogTarget::Write(log::LogLevel level, std::string message) { #ifdef CRU_PLATFORM_WINDOWS + String s = String::FromUtf8(message); 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; + std::cerr << message; } else { - std::cout << m; + std::cout << message; } #endif } |