#pragma once #include #include #include #include namespace c11log { class logger; namespace details { class factory { public: typedef std::shared_ptr logger_ptr; typedef std::unordered_map logger_map; logger_ptr get_logger(const std::string &name); static c11log::details::factory& instance(); private: logger_map _loggers; std::mutex _loggers_mutex; }; } }