diff --git a/include/spdlog/details/registry.h b/include/spdlog/details/registry.h index b5df6860..bc4565f5 100644 --- a/include/spdlog/details/registry.h +++ b/include/spdlog/details/registry.h @@ -42,9 +42,7 @@ public: void register_logger(std::shared_ptr new_logger) { std::lock_guard lock(logger_map_mutex_); - auto logger_name = new_logger->name(); - throw_if_exists_(logger_name); - loggers_[logger_name] = std::move(new_logger); + register_logger_(std::move(new_logger)); } void initialize_logger(std::shared_ptr new_logger) @@ -62,8 +60,7 @@ public: if (automatic_registration_) { - throw_if_exists_(new_logger->name()); - loggers_[new_logger->name()] = std::move(new_logger); + register_logger_(std::move(new_logger)); } } @@ -264,6 +261,13 @@ private: } } + void register_logger_(std::shared_ptr new_logger) + { + auto logger_name = new_logger->name(); + throw_if_exists_(logger_name); + loggers_[logger_name] = std::move(new_logger); + } + std::mutex logger_map_mutex_, flusher_mutex_; std::recursive_mutex tp_mutex_; std::unordered_map> loggers_;