aboutsummaryrefslogtreecommitdiff
path: root/src/base/log
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-07 11:46:11 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-07 11:46:11 +0800
commita0403d95bea3e3a3eaedf71a0d9c6d4e1316bd8c (patch)
treeb97687f99055b04775b63b7bafd2c909a7074cdb /src/base/log
parent20123151d12a0b01453ab6a36c84e4d3e5ea9504 (diff)
downloadcru-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.cpp34
-rw-r--r--src/base/log/StdioLogTarget.cpp9
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
}