#include "logger_base.hh" #include #include namespace { class LoggerStdio : public LoggerBase { public: LoggerStdio() = default; protected: void msg(Level lvl, std::string_view msg) override { std::lock_guard lock(mutex_); switch (lvl) { case Level::ERR: std::cerr << "Error: " << msg << std::endl; break; case Level::WARN: std::cout << "Warning: " << msg << std::endl; break; case Level::INFO: std::cout << msg << std::endl; break; case Level::DBG: std::cout << "Debug: " << msg << std::endl; break; } } private: std::mutex mutex_; }; } // namespace std::unique_ptr Logger::create_stdio() { return std::make_unique(); }