RecordControlApplication/Log.h

81 lines
1.5 KiB
C
Raw Permalink Normal View History

2024-03-04 16:22:40 +08:00
#ifndef LOG_H
#define LOG_H
#include "spdlog/spdlog.h"
#include <QDebug>
#include <QString>
#define ISINIT \
if (!isInit) { \
qDebug() << "Log not initialized!"; \
return; \
}
class Log {
public:
Log();
static void init();
template <typename T>
static void info(const T& msg)
{
ISINIT
SPDLOG_LOGGER_INFO(logger, msg);
}
template <typename... Args>
static void info(Args... args)
{
ISINIT
SPDLOG_LOGGER_INFO(logger, args...);
}
template <typename T>
static void warn(const T& msg)
{
ISINIT
SPDLOG_LOGGER_WARN(logger, msg);
}
template <typename... Args>
static void warn(Args... args)
{
ISINIT
SPDLOG_LOGGER_WARN(logger, args...);
}
template <typename T>
static void error(const T& msg)
{
ISINIT
SPDLOG_LOGGER_ERROR(logger, msg);
}
template <typename... Args>
static void error(Args... args)
{
ISINIT
SPDLOG_LOGGER_ERROR(logger, args...);
}
template <typename T>
static void critical(const T& msg)
{
ISINIT
SPDLOG_LOGGER_CRITICAL(logger, msg);
}
template <typename... Args>
static void critical(Args... args)
{
ISINIT
SPDLOG_LOGGER_CRITICAL(logger, args...);
}
private:
static std::shared_ptr<spdlog::logger> logger;
static bool isInit;
};
#endif // LOG_H