Just™ Game Engine
log.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020-2022 Konstanty Misiak
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#pragma once
8#include "jng/core/base.hpp"
9
10#ifdef JNG_DEBUG
11
12#include <spdlog/spdlog.h>
13#include <spdlog/fmt/ostr.h>
14
15namespace jng {
16
17 class Log
18 {
19 public:
20 static void init();
21
22 inline static spdlog::logger* getCoreLogger() { return s_coreLogger.get(); }
23 inline static spdlog::logger* getUserLogger() { return s_userLogger.get(); }
24 private:
25 Log() = delete;
26
27 static std::shared_ptr<spdlog::logger> s_coreLogger;
28 static std::shared_ptr<spdlog::logger> s_userLogger;
29 };
30
31} // namespace jng
32
33#define JNG_CORE_TRACE(...) Log::getCoreLogger()->trace(__VA_ARGS__)
34#define JNG_CORE_INFO(...) Log::getCoreLogger()->info(__VA_ARGS__)
35#define JNG_CORE_WARN(...) Log::getCoreLogger()->warn(__VA_ARGS__)
36#define JNG_CORE_ERROR(...) Log::getCoreLogger()->error(__VA_ARGS__)
37#define JNG_CORE_FATAL(...) Log::getCoreLogger()->critical(__VA_ARGS__)
38
39#define JNG_USER_TRACE(...) jng::Log::getUserLogger()->trace(__VA_ARGS__)
40#define JNG_USER_INFO(...) jng::Log::getUserLogger()->info(__VA_ARGS__)
41#define JNG_USER_WARN(...) jng::Log::getUserLogger()->warn(__VA_ARGS__)
42#define JNG_USER_ERROR(...) jng::Log::getUserLogger()->error(__VA_ARGS__)
43#define JNG_USER_FATAL(...) jng::Log::getUserLogger()->critical(__VA_ARGS__)
44
45#else
46
47#define JNG_CORE_TRACE(...)
48#define JNG_CORE_INFO(...)
49#define JNG_CORE_WARN(...)
50#define JNG_CORE_ERROR(...)
51#define JNG_CORE_FATAL(...)
52
53#define JNG_USER_TRACE(...)
54#define JNG_USER_INFO(...)
55#define JNG_USER_WARN(...)
56#define JNG_USER_ERROR(...)
57#define JNG_USER_FATAL(...)
58
59#endif
void init()
Definition: renderer.cpp:13
Definition: base.hpp:11