#pragma once #include #include #include "types/ilogger.hpp" namespace smtp::logger { class LoggerSet { private: explicit LoggerSet( std::list < types::ILoggerPtr > const& logger ); static void BuildLogger(); static std::shared_ptr < LoggerSet > mInstance; std::list < types::ILoggerPtr > mLogger; public: LoggerSet( const LoggerSet& ) = delete; LoggerSet& operator=( LoggerSet& ) = delete; void LogError( std::string const& method, std::string const& message ); static std::shared_ptr < LoggerSet > GetInstance(); }; }