mirror of
https://github.com/MadeOfJelly/MushMachine.git
synced 2024-09-21 20:45:35 +02:00
57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#define SPDLOG_ACTIVE_LEVEL 0
|
|
|
|
#include <memory>
|
|
#include <spdlog/spdlog.h>
|
|
|
|
// thos are helpers so you can do "#define LOG_ERROR(...) __LOG_ERROR("Engine", ...)
|
|
#define __LOG_CRIT(s, ...) SPDLOG_LOGGER_CRITICAL( spdlog::get(s), __VA_ARGS__)
|
|
#define __LOG_ERROR(s, ...) SPDLOG_LOGGER_ERROR( spdlog::get(s), __VA_ARGS__)
|
|
#define __LOG_WARN(s, ...) SPDLOG_LOGGER_WARN( spdlog::get(s), __VA_ARGS__)
|
|
#define __LOG_INFO(s, ...) SPDLOG_LOGGER_INFO( spdlog::get(s), __VA_ARGS__)
|
|
#define __LOG_DEBUG(s, ...) SPDLOG_LOGGER_DEBUG( spdlog::get(s), __VA_ARGS__)
|
|
#define __LOG_TRACE(s, ...) SPDLOG_LOGGER_TRACE( spdlog::get(s), __VA_ARGS__)
|
|
|
|
// copy paste me to start
|
|
//#define LOG_CRIT(...) __LOG_CRIT( "Engine", __VA_ARGS__)
|
|
//#define LOG_ERROR(...) __LOG_ERROR("Engine", __VA_ARGS__)
|
|
//#define LOG_WARN(...) __LOG_WARN( "Engine", __VA_ARGS__)
|
|
//#define LOG_INFO(...) __LOG_INFO( "Engine", __VA_ARGS__)
|
|
//#define LOG_DEBUG(...) __LOG_DEBUG("Engine", __VA_ARGS__)
|
|
//#define LOG_TRACE(...) __LOG_TRACE("Engine", __VA_ARGS__)
|
|
|
|
// copy paste me to end if in header
|
|
//#undef LOG_CRIT
|
|
//#undef LOG_ERROR
|
|
//#undef LOG_WARN
|
|
//#undef LOG_INFO
|
|
//#undef LOG_DEBUG
|
|
//#undef LOG_TRACE
|
|
|
|
|
|
// DONT USE! this exists only for legacy reasons!
|
|
#define LOG(s, x) SPDLOG_WARN("[!][{}] {}", s, x)
|
|
//#define LOG(s, x) MM::Logger::log(MM::Logger::file_name(__FILE__), __LINE__, s, x)
|
|
|
|
namespace MM {
|
|
|
|
struct Logger {
|
|
static bool initialized;
|
|
|
|
//static std::shared_ptr<spdlog::sinks::sink> _sink_console;
|
|
static spdlog::sink_ptr _sink_console;
|
|
static spdlog::sink_ptr _sink_file;
|
|
|
|
#ifdef TRACY_ENABLE
|
|
static spdlog::sink_ptr _sink_tracy;
|
|
#endif
|
|
|
|
static void init(void);
|
|
|
|
static void initSectionLogger(const char* section, bool log_to_stdio = true);
|
|
};
|
|
|
|
} // namespace MM
|
|
|