diff options
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/log/Logger.cpp | 34 | ||||
-rw-r--r-- | src/base/log/StdioLogTarget.cpp | 9 | ||||
-rw-r--r-- | src/base/platform/unix/PosixSpawnSubProcess.cpp | 6 | ||||
-rw-r--r-- | src/base/platform/unix/UnixFile.cpp | 4 |
4 files changed, 27 insertions, 26 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 } diff --git a/src/base/platform/unix/PosixSpawnSubProcess.cpp b/src/base/platform/unix/PosixSpawnSubProcess.cpp index f7d2e855..f99d3224 100644 --- a/src/base/platform/unix/PosixSpawnSubProcess.cpp +++ b/src/base/platform/unix/PosixSpawnSubProcess.cpp @@ -145,14 +145,14 @@ SubProcessExitResult PosixSpawnSubProcessImpl::PlatformWaitForProcess() { while (waitpid(pid_, &wstatus, 0) == -1) { if (errno == EINTR) { - CRU_LOG_TAG_INFO(u"Waitpid is interrupted by a signal. Call it again."); + CRU_LOG_TAG_INFO("Waitpid is interrupted by a signal. Call it again."); continue; } std::unique_ptr<ErrnoException> inner(new ErrnoException(errno)); - throw SubProcessInternalException( - u"Failed to call waitpid on a subprocess.", std::move(inner)); + throw SubProcessInternalException("Failed to call waitpid on a subprocess.", + std::move(inner)); } if (WIFEXITED(wstatus)) { diff --git a/src/base/platform/unix/UnixFile.cpp b/src/base/platform/unix/UnixFile.cpp index 9d4db949..00ed3b9c 100644 --- a/src/base/platform/unix/UnixFile.cpp +++ b/src/base/platform/unix/UnixFile.cpp @@ -19,10 +19,10 @@ UnixFileDescriptor::UnixFileDescriptor(int descriptor, bool auto_close, close_(std::move(close)) {} UnixFileDescriptor::~UnixFileDescriptor() { - constexpr auto kLogTag = u"cru::platform::unix::UnixFileDescriptor"; + constexpr auto kLogTag = "cru::platform::unix::UnixFileDescriptor"; if (this->IsValid() && this->IsAutoClose()) { if (!this->DoClose()) { - CRU_LOG_TAG_ERROR(u"Failed to close file descriptor {}, errno {}.", + CRU_LOG_TAG_ERROR("Failed to close file descriptor {}, errno {}.", descriptor_, errno); } } |