#include "logger_set.hpp" #include "journal.hpp" #include "phosphor.hpp" #include namespace smtp::logger { std::shared_ptr < LoggerSet > LoggerSet::mInstance = nullptr; LoggerSet::LoggerSet( std::list < types::ILoggerPtr > const& logger ) : mLogger( logger ) { } std::shared_ptr < LoggerSet > LoggerSet::GetInstance() { if( !mInstance ) { BuildLogger(); } return mInstance; } void LoggerSet::BuildLogger() { std::list < types::ILoggerPtr > loggers; #ifdef ADD_JOURNAL_LOGGING loggers.push_back( std::make_shared < Journal >()); #endif #ifdef ADD_PHOSPHOR_LOGGING loggers.push_back( std::make_shared < Phosphor >()); #endif mInstance.reset( new LoggerSet( loggers )); } void LoggerSet::LogError( std::string const& message ) { for( const auto& logger: mLogger ) { logger->LogError( message ); } } }