R-Type  2
Doom but in better
Loading...
Searching...
No Matches
LogMacros.hpp
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2024
3** rtype (Workspace)
4** File description:
5** LogMacros.hpp
6*/
7
8
35#ifndef _LOG_MACROS
36 #define _LOG_MACROS
37
38 #include "Log.hpp"
39
40 #define COLOUR_LOG_DISABLED Logging::isRedirected()
41
42 // Core log level definitions
43 #ifndef _LOG_CORE
44 #define _LOG_CORE
45 #define _DEBUG_STR " DEBUG: "
46 #define _INFO_STR " INFO: "
47 #define _SUCCESS_STR " SUCCESS: "
48 #define _WARNING_STR " WARNING: "
49 #define _ERROR_STR " ERROR: "
50 #define _CRITICAL_STR " CRITICAL: "
51 #endif
52
53 // Color definitions for supported platforms
54 #ifndef _LOG_COLOURS
55 #define _LOG_COLOURS
56 #ifndef NO_LOG_COLOURS
57 #if defined(__linux__) || defined(MACOSX) || defined(__APPLE__) || defined(__MACH__)
61 #define BACKGROUND_COL (COLOUR_LOG_DISABLED ? "" : "\033[48;5;16m")
62 #define DEFAULT_FG (COLOUR_LOG_DISABLED ? "" : "\033[38;5;15m")
63 #define RESET_COL (COLOUR_LOG_DISABLED ? "" : "\033[0m")
64 #define DEBUG_COL (COLOUR_LOG_DISABLED ? "" : "\033[38;5;200m")
65 #define SUCCESS_COL (COLOUR_LOG_DISABLED ? "" : "\033[38;5;10m")
66 #define INFO_COL (COLOUR_LOG_DISABLED ? "" : "\033[38;5;14m")
67 #define WARNING_COL (COLOUR_LOG_DISABLED ? "" : "\033[38;5;11m")
68 #define ERROR_COL (COLOUR_LOG_DISABLED ? "" : "\033[38;5;9m")
69 #define CRITICAL_COL (COLOUR_LOG_DISABLED ? "" : "\033[1m\033[38;5;232m\033[48;5;9m")
70 #else
74 #define BACKGROUND_COL ""
75 #define DEFAULT_FG ""
76 #define RESET_COL ""
77 #define DEBUG_COL ""
78 #define SUCCESS_COL ""
79 #define INFO_COL ""
80 #define WARNING_COL ""
81 #define ERROR_COL ""
82 #define CRITICAL_COL ""
83 #endif
84 #else
88 #define BACKGROUND_COL ""
89 #define DEFAULT_FG ""
90 #define RESET_COL ""
91 #define DEBUG_COL ""
92 #define SUCCESS_COL ""
93 #define INFO_COL ""
94 #define WARNING_COL ""
95 #define ERROR_COL ""
96 #define CRITICAL_COL ""
97 #endif
98 #endif
99
104 #ifndef _FUNC_NAME
105 #if defined(__GNUG__) || defined(__GNUC__) || defined(__GNUC_MINOR__) || defined(__GNUC_PATCHLEVEL__)
106 #define _FUNC_NAME __PRETTY_FUNCTION__
107 #else
108 #define _FUNC_NAME "Function name: (" << __func__ << ')'
109 #endif
110 #endif
111
115 #ifndef _MY_FILE_GETTER
116 #define _MY_FILE_GETTER " " << __FILE__ << ":" << __LINE__ << " " << _FUNC_NAME << ": "
117 #endif
118
122 #ifndef _MY_COLOURED_FILE_GETTER
123 #define _MY_COLOURED_FILE_GETTER BACKGROUND_COL << DEFAULT_FG << " " << SUCCESS_COL << __FILE__ << DEFAULT_FG << ":" << INFO_COL << __LINE__ << DEFAULT_FG << " " << WARNING_COL << _FUNC_NAME << DEFAULT_FG << ": "
124 #endif
125
133 #ifndef _LOG_LEVELS
134 #define _LOG_LEVELS
135 #define LOG_DEBUG Logging::Log::getInstance(true) << _DEBUG_STR
136 #define LOG_SUCCESS Logging::Log::getInstance(false) << _SUCCESS_STR
137 #define LOG_INFO Logging::Log::getInstance(false) << _INFO_STR
138 #define LOG_WARNING Logging::Log::getInstance(false) << _WARNING_STR
139 #define LOG_ERROR Logging::Log::getInstance(false) << _ERROR_STR
140 #define LOG_CRITICAL Logging::Log::getInstance(false) << _CRITICAL_STR
141 #endif
151 #ifndef _PRECISE_LOG
152 #define _PRECISE_LOG
153 #define PRECISE_DEBUG Logging::Log::getInstance(true) << _DEBUG_STR << _MY_FILE_GETTER
154 #define PRECISE_SUCCESS Logging::Log::getInstance(false) << _SUCCESS_STR << _MY_FILE_GETTER
155 #define PRECISE_INFO Logging::Log::getInstance(false) << _INFO_STR << _MY_FILE_GETTER
156 #define PRECISE_WARNING Logging::Log::getInstance(false) << _WARNING_STR << _MY_FILE_GETTER
157 #define PRECISE_ERROR Logging::Log::getInstance(false) << _ERROR_STR << _MY_FILE_GETTER
158 #define PRECISE_CRITICAL Logging::Log::getInstance(false) << _CRITICAL_STR << _MY_FILE_GETTER
159 #endif
169 #ifndef _COLOUR_LOG
170 #define _COLOUR_LOG
171 #define COLOUR_DEBUG Logging::Log::getInstance(true) << RESET_COL << BACKGROUND_COL << DEBUG_COL << _DEBUG_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
172 #define COLOUR_SUCCESS Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << SUCCESS_COL << _SUCCESS_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
173 #define COLOUR_INFO Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << INFO_COL << _INFO_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
174 #define COLOUR_WARNING Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << WARNING_COL << _WARNING_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
175 #define COLOUR_ERROR Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << ERROR_COL << _ERROR_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
176 #define COLOUR_CRITICAL Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << CRITICAL_COL << _CRITICAL_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG
177 #endif
187 #ifndef _PRETTY_LOG
188 #define _PRETTY_LOG
189 #define PRETTY_DEBUG Logging::Log::getInstance(true) << RESET_COL << BACKGROUND_COL << DEBUG_COL << _DEBUG_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
190 #define PRETTY_SUCCESS Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << SUCCESS_COL << _SUCCESS_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
191 #define PRETTY_INFO Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << INFO_COL << _INFO_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
192 #define PRETTY_WARNING Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << WARNING_COL << _WARNING_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
193 #define PRETTY_ERROR Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << ERROR_COL << _ERROR_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
194 #define PRETTY_CRITICAL Logging::Log::getInstance(false) << RESET_COL << BACKGROUND_COL << CRITICAL_COL << _CRITICAL_STR << RESET_COL << BACKGROUND_COL << DEFAULT_FG << _MY_COLOURED_FILE_GETTER
195 #endif
198#endif // _LOG_MACROS
This is the file in charge of containing the Log class (the one in charge of outputing info only when...