synchronous_factory.h 751 B

12345678910111213141516171819202122
  1. // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
  2. // Distributed under the MIT License (http://opensource.org/licenses/MIT)
  3. #pragma once
  4. #include "registry.h"
  5. namespace spdlog {
  6. // Default logger factory- creates synchronous loggers
  7. class logger;
  8. struct synchronous_factory {
  9. template <typename Sink, typename... SinkArgs>
  10. static std::shared_ptr<spdlog::logger> create(std::string logger_name, SinkArgs &&...args) {
  11. auto sink = std::make_shared<Sink>(std::forward<SinkArgs>(args)...);
  12. auto new_logger = std::make_shared<spdlog::logger>(std::move(logger_name), std::move(sink));
  13. details::registry::instance().initialize_logger(new_logger);
  14. return new_logger;
  15. }
  16. };
  17. } // namespace spdlog