synchronous_factory.h 753 B

123456789101112131415161718192021222324
  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. {
  10. template<typename Sink, typename... SinkArgs>
  11. static std::shared_ptr<spdlog::logger> create(std::string logger_name, SinkArgs &&...args)
  12. {
  13. auto sink = std::make_shared<Sink>(std::forward<SinkArgs>(args)...);
  14. auto new_logger = std::make_shared<spdlog::logger>(std::move(logger_name), std::move(sink));
  15. details::registry::instance().initialize_logger(new_logger);
  16. return new_logger;
  17. }
  18. };
  19. } // namespace spdlog