diff --git a/include/spdlog/details/spdlog_impl.h b/include/spdlog/details/spdlog_impl.h index 76843d71..5e1bc73a 100644 --- a/include/spdlog/details/spdlog_impl.h +++ b/include/spdlog/details/spdlog_impl.h @@ -72,22 +72,22 @@ inline std::shared_ptr spdlog::daily_logger_st(const std::string // Create stdout/stderr loggers inline std::shared_ptr spdlog::stdout_logger_mt(const std::string& logger_name) { - return create(logger_name); + return details::registry::instance().create(logger_name, spdlog::sinks::stdout_sink_mt::instance()); } inline std::shared_ptr spdlog::stdout_logger_st(const std::string& logger_name) { - return create(logger_name); + return details::registry::instance().create(logger_name, spdlog::sinks::stdout_sink_st::instance()); } inline std::shared_ptr spdlog::stderr_logger_mt(const std::string& logger_name) { - return create(logger_name); + return details::registry::instance().create(logger_name, spdlog::sinks::stderr_sink_mt::instance()); } inline std::shared_ptr spdlog::stderr_logger_st(const std::string& logger_name) { - return create(logger_name); + return details::registry::instance().create(logger_name, spdlog::sinks::stderr_sink_st::instance()); } #ifdef __linux__ diff --git a/include/spdlog/sinks/stdout_sinks.h b/include/spdlog/sinks/stdout_sinks.h index e944e273..5ad06c29 100644 --- a/include/spdlog/sinks/stdout_sinks.h +++ b/include/spdlog/sinks/stdout_sinks.h @@ -37,9 +37,14 @@ namespace sinks template class stdout_sink : public ostream_sink { + using MyType = stdout_sink; public: stdout_sink() : ostream_sink(std::cout, true) {} - + static std::shared_ptr instance() + { + static std::shared_ptr instance = std::make_shared(); + return instance; + } }; typedef stdout_sink stdout_sink_st; @@ -49,8 +54,15 @@ typedef stdout_sink stdout_sink_mt; template class stderr_sink : public ostream_sink { + using MyType = stderr_sink; public: stderr_sink() : ostream_sink(std::cerr, true) {} + static std::shared_ptr instance() + { + static std::shared_ptr instance = std::make_shared(); + return instance; + } + }; typedef stderr_sink stderr_sink_mt;