satdump/src-core/logger.cpp
2021-02-17 20:07:49 +01:00

41 lines
No EOL
1.3 KiB
C++

#include "logger.h"
#include <iostream>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
// Logger and sinks. We got a console sink and file sink
std::shared_ptr<spdlog::sinks::stdout_color_sink_mt> console_sink;
std::shared_ptr<spdlog::sinks::basic_file_sink_mt> file_sink;
std::shared_ptr<spdlog::logger> logger;
void initLogger()
{
try
{
// Initialize everything
console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("satdump.logs", true);
logger = std::shared_ptr<spdlog::logger>(new spdlog::logger("SatDump", {console_sink, file_sink}));
// Use a custom, nicer log pattern. No color in the file
console_sink->set_pattern("[%D - %T] %^(%L) %v%$");
file_sink->set_pattern("[%D - %T] (%L) %v");
// Default log level
file_sink->set_level(spdlog::level::trace);
console_sink->set_level(spdlog::level::trace);
logger->set_level(spdlog::level::trace);
}
catch (std::exception &e)
{
std::cout << e.what() << std::endl;
exit(1);
}
}
void setConsoleLevel(spdlog::level::level_enum level)
{
// Just change our log level
console_sink->set_level(level);
}