#ifndef FEATHERLOG_LOGGER_HPP #define FEATHERLOG_LOGGER_HPP #include #include #include #include namespace flog { class LogManager; class FLOG_API Logger final { friend class LogManager; public: ~Logger() = default; template void FLOG_CALL info(std::format_string fmt, Args &&... args, std::source_location loc = std::source_location::current()); private: Logger(std::string name, const std::weak_ptr &manager) noexcept : m_name(std::move(name)), m_logManager(manager) { } const std::string m_name; const std::weak_ptr m_logManager; }; } #endif