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 |