diff --git a/include/spdlog/details/registry-inl.h b/include/spdlog/details/registry-inl.h index 987113c1..0baf99f0 100644 --- a/include/spdlog/details/registry-inl.h +++ b/include/spdlog/details/registry-inl.h @@ -269,28 +269,11 @@ SPDLOG_INLINE void registry::set_configs(logger_cfgs configs) auto cfg_it = configs.loggers.find(logger->name()); // use default config if not found for this logger name - - logger_cfg *cfg; - if(cfg_it != configs.loggers.end()) - { - cfg = &cfg_it->second; - if(cfg->level_name.empty()) - { - cfg->level_name = configs.default_cfg.level_name; - } - if(cfg->level_name.empty()) - { - cfg->level_name = configs.default_cfg.level_name; - } - } - else - { - cfg = &configs.default_cfg; - } - - - logger->set_level(level::from_str(cfg->level_name)); - logger->set_formatter(details::make_unique(cfg->pattern)); + logger_cfg *cfg = cfg_it != configs.loggers.end() ? &cfg_it->second : &configs.default_cfg; + auto &level_name = cfg->level_name.empty() ? cfg->level_name: configs.default_cfg.level_name; + auto &pattern = cfg->pattern.empty() ? cfg->pattern: configs.default_cfg.pattern; + logger->set_level(level::from_str(level_name)); + logger->set_formatter(details::make_unique(pattern)); } logger_cfgs_ = std::move(configs); }