Replace heap allocation with view

This commit is contained in:
vperus 2026-03-06 18:41:41 +02:00
parent 3482dacea8
commit 7971e71d1b

View file

@ -6,6 +6,9 @@
#include <cstdlib> #include <cstdlib>
#include <algorithm> #include <algorithm>
#include <cctype> #include <cctype>
#include <cstring>
#include <iterator>
#include <ranges>
namespace wowee { namespace wowee {
namespace core { namespace core {
@ -42,15 +45,16 @@ void Logger::ensureFile() {
} }
} }
if (const char* level = std::getenv("WOWEE_LOG_LEVEL")) { if (const char* level = std::getenv("WOWEE_LOG_LEVEL")) {
std::string v(level); auto toLower = [] (unsigned char c) { return std::tolower(c); };
std::transform(v.begin(), v.end(), v.begin(), [](unsigned char c) { using namespace std::literals;
return static_cast<char>(std::tolower(c));
}); auto v = std::string_view{level} | std::views::transform(toLower);
if (v == "debug") setLogLevel(LogLevel::DEBUG); if (std::ranges::equal(v, "debug"sv)) setLogLevel(LogLevel::DEBUG);
else if (v == "info") setLogLevel(LogLevel::INFO); else if (std::ranges::equal(v, "info"sv)) setLogLevel(LogLevel::INFO);
else if (v == "warn" || v == "warning") setLogLevel(LogLevel::WARNING); else if (std::ranges::equal(v, "warn"sv) || std::ranges::equal(v, "warning"sv))
else if (v == "error") setLogLevel(kLogLevelError); setLogLevel(LogLevel::WARNING);
else if (v == "fatal") setLogLevel(LogLevel::FATAL); else if (std::ranges::equal(v, "error"sv)) setLogLevel(kLogLevelError);
else if (std::ranges::equal(v, "fatal"sv)) setLogLevel(LogLevel::FATAL);
} }
std::error_code ec; std::error_code ec;
std::filesystem::create_directories("logs", ec); std::filesystem::create_directories("logs", ec);