Project setup

This commit is contained in:
2026-04-11 17:29:03 -04:00
commit 9cb8c1854f
34 changed files with 609 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
#include "logger.h"
#include <memory>
#include <spdlog/async_logger.h>
#include <spdlog/common.h>
#include "spdlog/async.h"
#include "spdlog/sinks/basic_file_sink.h"
#include "spdlog/sinks/stdout_color_sinks.h"
#include "spdlog/spdlog.h"
namespace OatmealUtils {
void initLogging() {
spdlog::init_thread_pool(8192, 1);
spdlog::flush_every(std::chrono::seconds(1));
}
void createLogger(const char *name, const char *filename) {
std::vector<spdlog::sink_ptr> sinks{};
const auto stdoutSink = std::make_shared<spdlog::sinks::stderr_color_sink_mt>();
stdoutSink->set_level(spdlog::level::debug);
stdoutSink->set_pattern("%^[%D %r %z] [%n] [%l] [thread %t] %v%$");
sinks.emplace_back(stdoutSink);
if (filename != nullptr) {
const auto fileSink = std::make_shared<spdlog::sinks::basic_file_sink_mt>(filename);
fileSink->set_level(spdlog::level::debug);
fileSink->set_pattern("%^[%D %r %z] [%n] [%l] [thread %t] %v%$");
sinks.emplace_back(fileSink);
}
const auto logger = std::make_shared<spdlog::async_logger>(
name, sinks.begin(), sinks.end(), spdlog::thread_pool(), spdlog::async_overflow_policy::block);
logger->flush_on(spdlog::level::warn);
#ifndef NDEBUG
logger->set_level(spdlog::level::debug);
#else
logger->set_level(spdlog::level::info);
#endif // !NDEBUG
spdlog::register_logger(logger);
}
void createLogger(std::string name, std::string filename) { createLogger(name.c_str(), filename.c_str()); }
std::shared_ptr<logger> get(const char *name) { return spdlog::get(name); }
std::shared_ptr<logger> get(std::string name) { return spdlog::get(name); }
} // namespace OatmealUtils

View File

@@ -0,0 +1,20 @@
#ifndef OATMEAL_LOGGER
#define OATMEAL_LOGGER
#include <memory>
#include <spdlog/spdlog.h>
#include "string"
namespace OatmealUtils {
using logger = spdlog::logger;
void initLogging();
void createLogger(const char *name, const char *filename);
void createLogger(std::string name, std::string filename);
std::shared_ptr<logger> get(const char *name);
std::shared_ptr<logger> get(std::string name);
} // namespace OatmealUtils
#endif // !OATMEAL_LOGGER