diff options
Diffstat (limited to 'include/spdlog/details/synchronous_factory.h')
-rw-r--r-- | include/spdlog/details/synchronous_factory.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/spdlog/details/synchronous_factory.h b/include/spdlog/details/synchronous_factory.h new file mode 100644 index 00000000..e1e42268 --- /dev/null +++ b/include/spdlog/details/synchronous_factory.h @@ -0,0 +1,24 @@ +// Copyright(c) 2015-present, Gabi Melman & spdlog contributors. +// Distributed under the MIT License (http://opensource.org/licenses/MIT) + +#pragma once + +#include "registry.h" + +namespace spdlog { + +// Default logger factory- creates synchronous loggers +class logger; + +struct synchronous_factory +{ + template<typename Sink, typename... SinkArgs> + static std::shared_ptr<spdlog::logger> create(std::string logger_name, SinkArgs &&...args) + { + auto sink = std::make_shared<Sink>(std::forward<SinkArgs>(args)...); + auto new_logger = std::make_shared<spdlog::logger>(std::move(logger_name), std::move(sink)); + details::registry::instance().initialize_logger(new_logger); + return new_logger; + } +}; +} // namespace spdlog |