/** * @file Logger.cpp */ #include "Logger.h" #include #include #include #include #include namespace fs = std::filesystem; namespace UNO::COMMON { void Logger::init(const std::string &app_name, const std::string &log_dir) { fs::path dir{log_dir}; if (!fs::exists(dir)) { fs::create_directories(dir); } auto logfile = (dir / (app_name + ".log")).string(); constexpr std::size_t max_file_size = 5 * 1024 * 1024; constexpr std::size_t max_files = 3; auto rotating_sink = std::make_shared(logfile, max_file_size, max_files); auto console_sink = std::make_shared(); rotating_sink->set_level(spdlog::level::debug); console_sink->set_level(spdlog::level::info); std::vector sinks{rotating_sink, console_sink}; auto logger = std::make_shared(app_name, sinks.begin(), sinks.end()); logger->set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] [%s:%#] [%!] %v"); spdlog::register_logger(logger); spdlog::set_default_logger(logger); } } // namespace UNO::COMMON