#pragma once

#include <memory>
#include <string>

#include "spdlog/spdlog.h"

#include "Logger.h"
#include "LogSettings.h"

namespace mitech::utils::logging
{
    class CMitechGuiEventLog : public CLogger
    {
    public:
        explicit CMitechGuiEventLog(const std::string& strName, const stLogOption& mySetting);
        ~CMitechGuiEventLog() final;

    private:
        void InitLogger(const stLogOption& mySetting);

        // Inherited via CLogger
        void DoStart() override;
        void DoFlush() override;
        void DoLogging(const std::string& strMsg) override;

        std::shared_ptr<spdlog::logger> m_logger;
        std::string                     m_strPathFilename{ R"(d:\machine\log\GuiEventLog.log)" };
    };
}