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