50 lines
1.9 KiB
C++
50 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include "Gedeng/String.h"
|
|
#include "spdlog/spdlog.h"
|
|
#include <memory>
|
|
|
|
namespace Gedeng {
|
|
|
|
class Logger {
|
|
public:
|
|
static void init();
|
|
|
|
inline static std::shared_ptr<spdlog::logger> &get_core_logger() {
|
|
return core_logger;
|
|
}
|
|
inline static std::shared_ptr<spdlog::logger> &get_client_logger() {
|
|
return client_logger;
|
|
}
|
|
|
|
static void debug(const String &text);
|
|
|
|
private:
|
|
static std::shared_ptr<spdlog::logger> core_logger;
|
|
static std::shared_ptr<spdlog::logger> client_logger;
|
|
};
|
|
|
|
} // namespace Gedeng
|
|
|
|
// Core log macros
|
|
#define GG_CORE_FATAL(...) \
|
|
::Gedeng::Logger::get_core_logger()->fatal(__VA_ARGS__)
|
|
#define GG_CORE_ERROR(...) \
|
|
::Gedeng::Logger::get_core_logger()->error(__VA_ARGS__)
|
|
#define GG_CORE_WARN(...) ::Gedeng::Logger::get_core_logger()->warn(__VA_ARGS__)
|
|
#define GG_CORE_INFO(...) ::Gedeng::Logger::get_core_logger()->info(__VA_ARGS__)
|
|
#define GG_CORE_TRACE(...) \
|
|
::Gedeng::Logger::get_core_logger()->trace(__VA_ARGS__)
|
|
|
|
// Client log macros
|
|
#define GG_CLIENT_FATAL(...) \
|
|
::Gedeng::Logger::get_client_logger()->fatal(__VA_ARGS__)
|
|
#define GG_CLIENT_ERROR(...) \
|
|
::Gedeng::Logger::get_client_logger()->error(__VA_ARGS__)
|
|
#define GG_CLIENT_WARN(...) \
|
|
::Gedeng::Logger::get_client_logger()->warn(__VA_ARGS__)
|
|
#define GG_CLIENT_INFO(...) \
|
|
::Gedeng::Logger::get_client_logger()->info(__VA_ARGS__)
|
|
#define GG_CLIENT_TRACE(...) \
|
|
::Gedeng::Logger::get_client_logger()->trace(__VA_ARGS__)
|