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
8namespace spdlog {
9
10// Default logger factory- creates synchronous loggers
11class logger;
12
13struct synchronous_factory
14{
15 template<typename Sink, typename... SinkArgs>
16 static std::shared_ptr<spdlog::logger> create(std::string logger_name, SinkArgs &&... args)
17 {
18 auto sink = std::make_shared<Sink>(std::forward<SinkArgs>(args)...);
19 auto new_logger = std::make_shared<spdlog::logger>(std::move(logger_name), std::move(sink));
20 details::registry::instance().initialize_logger(new_logger);
21 return new_logger;
22 }
23};
24} // namespace spdlog
25