#include "../include.h" #include "io.h" std::shared_ptr io::logger; void io::init(const bool& to_file) { auto sink = std::make_shared(); sink->set_pattern("[%R][%^%l%$] %v"); auto file_sink = std::make_shared("server.log", true); std::vector log_sinks; log_sinks.emplace_back(sink); if (to_file) log_sinks.emplace_back(file_sink); logger = std::make_shared("server", log_sinks.begin(), log_sinks.end()); spdlog::register_logger(logger); spdlog::flush_every(std::chrono::seconds(1)); } bool io::read_file(const std::string_view name, std::vector& out) { std::ifstream file(name.data()); if (!file.good()) { io::logger->error("failed to load {}.", name.data()); return false; } file.unsetf(std::ios::skipws); file.seekg(0, std::ios::end); const size_t size = file.tellg(); file.seekg(0, std::ios::beg); out.resize(size); file.read(out.data(), size); file.close(); return true; } bool io::read_file(const std::string_view name, std::string& out) { std::vector vec; if(!read_file(name, vec)) return false; out.assign(vec.begin(), vec.end()); return true; }