satdump/src-core/logger.cpp

67 lines
1.8 KiB
C++
Raw Normal View History

2021-03-11 19:28:50 +01:00
#define SATDUMP_DLL_EXPORT 1
2021-02-14 12:05:44 +01:00
#include "logger.h"
#include <iostream>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/stdout_color_sinks.h>
#include <spdlog/sinks/basic_file_sink.h>
#ifdef __ANDROID__
#include <spdlog/sinks/android_sink.h>
#endif
2021-02-14 12:05:44 +01:00
// Logger and sinks. We got a console sink and file sink
#ifdef __ANDROID__
std::shared_ptr<spdlog::sinks::android_sink_mt> console_sink;
#else
2021-02-14 12:05:44 +01:00
std::shared_ptr<spdlog::sinks::stdout_color_sink_mt> console_sink;
#endif
2021-02-14 12:05:44 +01:00
std::shared_ptr<spdlog::sinks::basic_file_sink_mt> file_sink;
2021-03-11 19:28:50 +01:00
SATDUMP_DLL std::shared_ptr<spdlog::logger> logger;
2021-02-14 12:05:44 +01:00
void initLogger()
{
try
{
// Initialize everything
#ifdef __ANDROID__
console_sink = std::make_shared<spdlog::sinks::android_sink_mt>();
#else
2021-02-14 12:05:44 +01:00
console_sink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
#endif
2022-05-13 21:35:51 +02:00
logger = std::shared_ptr<spdlog::logger>(new spdlog::logger("SatDump", {console_sink}));
2021-02-14 12:05:44 +01:00
// Use a custom, nicer log pattern. No color in the file
console_sink->set_pattern("[%D - %T] %^(%L) %v%$");
2022-11-26 17:50:44 +01:00
// Default log level
2021-02-14 12:05:44 +01:00
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);
}
}
2022-11-26 17:50:44 +01:00
void initFileSink()
{
try
{
file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("satdump.logs", true);
logger->sinks().push_back(file_sink);
file_sink->set_pattern("[%D - %T] (%L) %v");
file_sink->set_level(spdlog::level::trace);
}
catch (std::exception &e)
{
std::cout << e.what() << std::endl;
exit(1);
}
}
2021-02-14 12:05:44 +01:00
void setConsoleLevel(spdlog::level::level_enum level)
{
// Just change our log level
console_sink->set_level(level);
}