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 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