23 lines
		
	
	
		
			751 B
		
	
	
	
		
			C
		
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			751 B
		
	
	
	
		
			C
		
	
	
	
|  | // 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
 |