6#ifndef SPDLOG_HEADER_ONLY
27 str.
begin(), str.
end(), str.
begin(), [](
char ch) { return static_cast<char>((ch >=
'A' && ch <=
'Z') ? ch + (
'a' -
'A') : ch); });
34 const char *spaces =
" \n\r\t";
49 auto n = str.
find(sep);
51 if (n == std::string::npos)
77 rv[kv.first] = kv.second;
92 bool global_level_found =
false;
94 for (
auto &name_level : key_vals)
96 auto &logger_name = name_level.first;
97 auto level_name =
to_lower_(name_level.second);
100 if (level ==
level::off && level_name !=
"off")
104 if (logger_name.empty())
106 global_level_found =
true;
107 global_level = level;
111 levels[logger_name] = level;
void set_levels(log_levels levels, level::level_enum *global_level)
static registry & instance()
T find_first_not_of(T... args)
T find_last_not_of(T... args)
std::unordered_map< std::string, std::string > extract_key_vals_(const std::string &str)
std::pair< std::string, std::string > extract_kv_(char sep, const std::string &str)
std::string & to_lower_(std::string &str)
std::string & trim_(std::string &str)
SPDLOG_INLINE void load_levels(const std::string &input)
SPDLOG_INLINE spdlog::level::level_enum from_str(const std::string &name) SPDLOG_NOEXCEPT