DYT/Source/src/common/SpdLogger.h

29 lines
1.2 KiB
C
Raw Normal View History

2024-11-22 15:11:48 +00:00
#pragma once
#include <string>
#include "spdlog/spdlog.h"
#ifndef SPDLOG_NO_SOURCE_LOC
#undef SPDLOG_LOGGER_CALL
#define SPDLOG_LOGGER_CALL(logger, level, ...) \
(logger)->log(spdlog::source_loc{__FUNCTION__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__)
#else
# define SPDLOG_LOGGER_CALL(logger, level, ...) (logger)->log(spdlog::source_loc{}, level, __VA_ARGS__)
#endif
class SpdLogger final {
public:
SpdLogger(const std::string& filename, int flush);
~SpdLogger();
};
extern const char* LoggerName;
#define LOG_TRACE(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::trace, __VA_ARGS__)
#define LOG_DEBUG(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::debug, __VA_ARGS__)
#define LOG_INFO(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::info, __VA_ARGS__)
#define LOG_WARN(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::warn, __VA_ARGS__)
#define LOG_ERROR(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::err, __VA_ARGS__)
#define LOG_CRITI(...) SPDLOG_LOGGER_CALL(spdlog::get(LoggerName), spdlog::level::critical, __VA_ARGS__)