aboutsummaryrefslogtreecommitdiff
path: root/src/common/Logger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/Logger.cpp')
-rw-r--r--src/common/Logger.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/common/Logger.cpp b/src/common/Logger.cpp
index da55047a..dfa25347 100644
--- a/src/common/Logger.cpp
+++ b/src/common/Logger.cpp
@@ -10,7 +10,6 @@ namespace cru::log {
namespace {
Logger *CreateLogger() {
const auto logger = new Logger();
- logger->AddSource(std::make_unique<StdioLogSource>());
return logger;
}
} // namespace
@@ -31,39 +30,43 @@ void Logger::RemoveSource(ILogSource *source) {
}
namespace {
-std::string_view LogLevelToString(LogLevel level) {
+std::u16string_view LogLevelToString(LogLevel level) {
switch (level) {
case LogLevel::Debug:
- return "DEBUG";
+ return u"DEBUG";
case LogLevel::Info:
- return "INFO";
+ return u"INFO";
case LogLevel::Warn:
- return "WARN";
+ return u"WARN";
case LogLevel::Error:
- return "ERROR";
+ return u"ERROR";
default:
std::terminate();
}
}
+
+std::u16string GetLogTime() {
+ auto time = std::time(nullptr);
+ auto calendar = std::localtime(&time);
+ return fmt::format(u"{}:{}:{}", calendar->tm_hour, calendar->tm_min,
+ calendar->tm_sec);
+}
} // namespace
-void Logger::Log(LogLevel level, std::string_view s) {
+void Logger::Log(LogLevel level, std::u16string_view s) {
#ifndef CRU_DEBUG
if (level == LogLevel::Debug) {
return;
}
#endif
for (const auto &source : sources_) {
- auto now = std::time(nullptr);
- std::array<char, 50> buffer;
- std::strftime(buffer.data(), 50, "%c", std::localtime(&now));
-
- source->Write(level, fmt::format("[{}] {}: {}\n", buffer.data(),
+ source->Write(level, fmt::format(u"[{}] {}: {}\n", GetLogTime(),
LogLevelToString(level), s));
}
}
-void Logger::Log(LogLevel level, std::string_view tag, std::string_view s) {
+void Logger::Log(LogLevel level, std::u16string_view tag,
+ std::u16string_view s) {
#ifndef CRU_DEBUG
if (level == LogLevel::Debug) {
return;
@@ -71,10 +74,7 @@ void Logger::Log(LogLevel level, std::string_view tag, std::string_view s) {
#endif
for (const auto &source : sources_) {
auto now = std::time(nullptr);
- std::array<char, 50> buffer;
- std::strftime(buffer.data(), 50, "%c", std::localtime(&now));
-
- source->Write(level, fmt::format("[{}] {} {}: {}\n", buffer.data(),
+ source->Write(level, fmt::format(u"[{}] {} {}: {}\n", GetLogTime(),
LogLevelToString(level), tag, s));
}
}