zengine-old/engine/3rdparty/zlog/include/zlog.h

43 lines
1.5 KiB
C
Raw Normal View History

2024-02-26 08:27:22 +08:00
#pragma once
2024-02-26 08:48:10 +08:00
#include "spdlog/spdlog.h"
2024-02-28 01:32:58 +08:00
#include "source_location.h"
2024-02-26 08:48:10 +08:00
#include <cstdint>
#include <stdexcept>
2024-02-28 01:32:58 +08:00
namespace zlog {
using level_enum = spdlog::level::level_enum;
class zloger {
private:
std::shared_ptr<spdlog::logger> m_logger;
public:
zloger();
~zloger();
template <typename... Args>
void log(level_enum level, format_with_location& fmt, Args &&...args) {
m_logger->log(fmt.loc, level, fmt::runtime(fmt.value), std::forward<Args>(args)...);
2024-02-26 08:48:10 +08:00
}
2024-02-28 01:32:58 +08:00
};
extern zloger zlog;
template <typename... Args>
void info(format_with_location fmt, Args &&...args) {
zlog.log(level_enum::info, fmt, std::forward<Args>(args)...);
};
template <typename... Args>
void debug(format_with_location fmt, Args &&...args) {
zlog.log(level_enum::debug, fmt, std::forward<Args>(args)...);
};
template <typename... Args>
void warn(format_with_location fmt, Args &&...args) {
zlog.log(level_enum::warn, fmt, std::forward<Args>(args)...);
};
template <typename... Args>
void error(format_with_location fmt, Args &&...args) {
zlog.log(level_enum::err, fmt, std::forward<Args>(args)...);
};
template <typename... Args>
void fatal(format_with_location fmt, Args &&...args) {
zlog.log(level_enum::critical, fmt, std::forward<Args>(args)...);
const std::string format_str = fmt::format(std::forward<Args>(args)...);
2024-02-26 08:48:10 +08:00
throw std::runtime_error(format_str);
2024-02-28 01:32:58 +08:00
};
};