#ifndef ILOG_MAKE_PTR_H #define ILOG_MAKE_PTR_H #include "ILog.h" #include "Log.h" #include #include class ILogMakePtr { public: static std::shared_ptr &GetInstance(std::shared_ptr *impl = nullptr) { static std::shared_ptr instance = std::make_shared(); if (impl) { instance = *impl; } return instance; } ILogMakePtr() = default; virtual ~ILogMakePtr() = default; virtual std::shared_ptr MakeLogImplPtr(); virtual std::shared_ptr MakeLogEasylogging(const LogSetting *setting); virtual std::shared_ptr MakeLongCapture(const LogSetting *setting); }; #endif