2#ifndef _LOGIT_LOG_MACROS_HPP_INCLUDED
3#define _LOGIT_LOG_MACROS_HPP_INCLUDED
14 #define LOGIT_FUNCTION __PRETTY_FUNCTION__
15#elif defined(_MSC_VER)
16 #define LOGIT_FUNCTION __FUNCSIG__
18 #define LOGIT_FUNCTION __func__
23#define LOGIT_ENUM_TO_STR_CASE(value) case value: return #value;
25#define LOGIT_LEVEL_TRACE 0
26#define LOGIT_LEVEL_DEBUG 1
27#define LOGIT_LEVEL_INFO 2
28#define LOGIT_LEVEL_WARN 3
29#define LOGIT_LEVEL_ERROR 4
30#define LOGIT_LEVEL_FATAL 5
32#ifdef _LOGIT_ENUMS_HPP_INCLUDED
41#ifndef LOGIT_COMPILED_LEVEL
42# define LOGIT_COMPILED_LEVEL LOGIT_LEVEL_TRACE
45#if __cplusplus >= 201703L
46# define LOGIT_IF_COMPILED_LEVEL(level) if constexpr (LOGIT_COMPILED_LEVEL <= static_cast<int>(level))
57#define LOGIT_STREAM(level) \
58 logit::LogStream(level, logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, LOGIT_FUNCTION, -1)
61#define LOGIT_STREAM_WITH_INDEX(level, index) \
62 logit::LogStream(level, logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, LOGIT_FUNCTION, index)
64#define LOGIT_STREAM_TRACE() LOGIT_STREAM(logit::LogLevel::LOG_LVL_TRACE)
65#define LOGIT_STREAM_DEBUG() LOGIT_STREAM(logit::LogLevel::LOG_LVL_DEBUG)
66#define LOGIT_STREAM_INFO() LOGIT_STREAM(logit::LogLevel::LOG_LVL_INFO)
67#define LOGIT_STREAM_WARN() LOGIT_STREAM(logit::LogLevel::LOG_LVL_WARN)
68#define LOGIT_STREAM_ERROR() LOGIT_STREAM(logit::LogLevel::LOG_LVL_ERROR)
69#define LOGIT_STREAM_FATAL() LOGIT_STREAM(logit::LogLevel::LOG_LVL_FATAL)
71#define LOGIT_STREAM_TRACE_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index)
72#define LOGIT_STREAM_DEBUG_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index)
73#define LOGIT_STREAM_INFO_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index)
74#define LOGIT_STREAM_WARN_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index)
75#define LOGIT_STREAM_ERROR_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index)
76#define LOGIT_STREAM_FATAL_TO(index) LOGIT_STREAM_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index)
78#if defined(LOGIT_SHORT_NAME)
81#define LOG_S_TRACE() LOGIT_STREAM_TRACE()
82#define LOG_S_DEBUG() LOGIT_STREAM_DEBUG()
83#define LOG_S_INFO() LOGIT_STREAM_INFO()
84#define LOG_S_WARN() LOGIT_STREAM_WARN()
85#define LOG_S_ERROR() LOGIT_STREAM_ERROR()
86#define LOG_S_FATAL() LOGIT_STREAM_FATAL()
88#define LOG_S_TRACE_TO(index) LOGIT_STREAM_TRACE_TO(index)
89#define LOG_S_DEBUG_TO(index) LOGIT_STREAM_DEBUG_TO(index)
90#define LOG_S_INFO_TO(index) LOGIT_STREAM_INFO_TO(index)
91#define LOG_S_WARN_TO(index) LOGIT_STREAM_WARN_TO(index)
92#define LOG_S_ERROR_TO(index) LOGIT_STREAM_ERROR_TO(index)
93#define LOG_S_FATAL_TO(index) LOGIT_STREAM_FATAL_TO(index)
105#if __cplusplus >= 201703L
106#define LOGIT_LOG_AND_RETURN_NOARGS(level, format) \
108 LOGIT_IF_COMPILED_LEVEL(level) \
109 logit::Logger::get_instance().log_and_return( \
110 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
111 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
112 LOGIT_FUNCTION, format, {}, -1, false}); \
115#define LOGIT_LOG_AND_RETURN_NOARGS(level, format) \
117 logit::Logger::get_instance().log_and_return( \
118 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
119 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
120 LOGIT_FUNCTION, format, {}, -1, false}); \
128#if __cplusplus >= 201703L
129#define LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(level, index, format) \
131 LOGIT_IF_COMPILED_LEVEL(level) \
132 logit::Logger::get_instance().log_and_return( \
133 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
134 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
135 LOGIT_FUNCTION, format, {}, index}); \
138#define LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(level, index, format) \
140 logit::Logger::get_instance().log_and_return( \
141 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
142 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
143 LOGIT_FUNCTION, format, {}, index}); \
155#if __cplusplus >= 201703L
156#define LOGIT_LOG_AND_RETURN(level, format, arg_names, ...) \
158 LOGIT_IF_COMPILED_LEVEL(level) \
159 logit::Logger::get_instance().log_and_return( \
160 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
161 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
162 LOGIT_FUNCTION, format, arg_names, -1, false}, __VA_ARGS__); \
165#define LOGIT_LOG_AND_RETURN(level, format, arg_names, ...) \
167 logit::Logger::get_instance().log_and_return( \
168 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
169 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
170 LOGIT_FUNCTION, format, arg_names, -1, false}, __VA_ARGS__); \
179#if __cplusplus >= 201703L
180#define LOGIT_LOG_AND_RETURN_PRINT(level, arg_names, ...) \
182 LOGIT_IF_COMPILED_LEVEL(level) \
183 logit::Logger::get_instance().log_and_return( \
184 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
185 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
186 LOGIT_FUNCTION, {}, arg_names, -1, true}, __VA_ARGS__); \
189#define LOGIT_LOG_AND_RETURN_PRINT(level, arg_names, ...) \
191 logit::Logger::get_instance().log_and_return( \
192 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
193 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
194 LOGIT_FUNCTION, {}, arg_names, -1, true}, __VA_ARGS__); \
204#if __cplusplus >= 201703L
205#define LOGIT_LOG_AND_RETURN_WITH_INDEX(level, index, format, arg_names, ...) \
207 LOGIT_IF_COMPILED_LEVEL(level) \
208 logit::Logger::get_instance().log_and_return( \
209 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
210 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
211 LOGIT_FUNCTION, format, arg_names, index, false}, __VA_ARGS__); \
214#define LOGIT_LOG_AND_RETURN_WITH_INDEX(level, index, format, arg_names, ...) \
216 logit::Logger::get_instance().log_and_return( \
217 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
218 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
219 LOGIT_FUNCTION, format, arg_names, index, false}, __VA_ARGS__); \
229#if __cplusplus >= 201703L
230#define LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(level, index, arg_names, ...) \
232 LOGIT_IF_COMPILED_LEVEL(level) \
233 logit::Logger::get_instance().log_and_return( \
234 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
235 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
236 LOGIT_FUNCTION, {}, arg_names, index, true}, __VA_ARGS__); \
239#define LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(level, index, arg_names, ...) \
241 logit::Logger::get_instance().log_and_return( \
242 logit::LogRecord{level, LOGIT_CURRENT_TIMESTAMP_MS(), \
243 logit::make_relative(__FILE__, LOGIT_BASE_PATH), __LINE__, \
244 LOGIT_FUNCTION, {}, arg_names, index, true}, __VA_ARGS__); \
251#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_TRACE
253#define LOGIT_TRACE(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_TRACE, {}, #__VA_ARGS__, __VA_ARGS__)
254#define LOGIT_TRACE0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
255#define LOGIT_0TRACE() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
256#define LOGIT_0_TRACE() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
257#define LOGIT_NOARGS_TRACE() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
258#define LOGIT_FORMAT_TRACE(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_TRACE, fmt, #__VA_ARGS__, __VA_ARGS__)
259#define LOGIT_PRINT_TRACE(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_TRACE, #__VA_ARGS__, __VA_ARGS__)
260#define LOGIT_PRINTF_TRACE(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, logit::format(fmt, __VA_ARGS__))
263#define LOGIT_TRACE_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, {}, #__VA_ARGS__, __VA_ARGS__)
264#define LOGIT_TRACE0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, {})
265#define LOGIT_0TRACE_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, {})
266#define LOGIT_0_TRACE_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, {})
267#define LOGIT_NOARGS_TRACE_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, {})
268#define LOGIT_FORMAT_TRACE_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, fmt, #__VA_ARGS__, __VA_ARGS__)
269#define LOGIT_PRINT_TRACE_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, #__VA_ARGS__, __VA_ARGS__)
270#define LOGIT_PRINTF_TRACE_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_TRACE, index, logit::format(fmt, __VA_ARGS__))
272#define LOGIT_TRACE(...) do { } while (0)
273#define LOGIT_TRACE0() do { } while (0)
274#define LOGIT_0TRACE() do { } while (0)
275#define LOGIT_0_TRACE() do { } while (0)
276#define LOGIT_NOARGS_TRACE() do { } while (0)
277#define LOGIT_FORMAT_TRACE(fmt, ...) do { } while (0)
278#define LOGIT_PRINT_TRACE(...) do { } while (0)
279#define LOGIT_PRINTF_TRACE(fmt, ...) do { } while (0)
280#define LOGIT_TRACE_TO(index, ...) do { } while (0)
281#define LOGIT_TRACE0_TO(index) do { } while (0)
282#define LOGIT_0TRACE_TO(index) do { } while (0)
283#define LOGIT_0_TRACE_TO(index) do { } while (0)
284#define LOGIT_NOARGS_TRACE_TO(index) do { } while (0)
285#define LOGIT_FORMAT_TRACE_TO(index, fmt, ...) do { } while (0)
286#define LOGIT_PRINT_TRACE_TO(index, ...) do { } while (0)
287#define LOGIT_PRINTF_TRACE_TO(index, fmt, ...) do { } while (0)
290#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_INFO
292#define LOGIT_INFO(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_INFO, {}, #__VA_ARGS__, __VA_ARGS__)
293#define LOGIT_INFO0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
294#define LOGIT_0INFO() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
295#define LOGIT_0_INFO() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
296#define LOGIT_NOARGS_INFO() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
297#define LOGIT_FORMAT_INFO(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_INFO, fmt, #__VA_ARGS__, __VA_ARGS__)
298#define LOGIT_PRINT_INFO(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_INFO, #__VA_ARGS__, __VA_ARGS__)
299#define LOGIT_PRINTF_INFO(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, logit::format(fmt, __VA_ARGS__))
302#define LOGIT_INFO_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, {}, #__VA_ARGS__, __VA_ARGS__)
303#define LOGIT_INFO0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, {})
304#define LOGIT_0INFO_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, {})
305#define LOGIT_0_INFO_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, {})
306#define LOGIT_NOARGS_INFO_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, {})
307#define LOGIT_FORMAT_INFO_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, fmt, #__VA_ARGS__, __VA_ARGS__)
308#define LOGIT_PRINT_INFO_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, #__VA_ARGS__, __VA_ARGS__)
309#define LOGIT_PRINTF_INFO_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_INFO, index, logit::format(fmt, __VA_ARGS__))
311#define LOGIT_INFO(...) do { } while (0)
312#define LOGIT_INFO0() do { } while (0)
313#define LOGIT_0INFO() do { } while (0)
314#define LOGIT_0_INFO() do { } while (0)
315#define LOGIT_NOARGS_INFO() do { } while (0)
316#define LOGIT_FORMAT_INFO(fmt, ...) do { } while (0)
317#define LOGIT_PRINT_INFO(...) do { } while (0)
318#define LOGIT_PRINTF_INFO(fmt, ...) do { } while (0)
319#define LOGIT_INFO_TO(index, ...) do { } while (0)
320#define LOGIT_INFO0_TO(index) do { } while (0)
321#define LOGIT_0INFO_TO(index) do { } while (0)
322#define LOGIT_0_INFO_TO(index) do { } while (0)
323#define LOGIT_NOARGS_INFO_TO(index) do { } while (0)
324#define LOGIT_FORMAT_INFO_TO(index, fmt, ...) do { } while (0)
325#define LOGIT_PRINT_INFO_TO(index, ...) do { } while (0)
326#define LOGIT_PRINTF_INFO_TO(index, fmt, ...) do { } while (0)
329#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_DEBUG
331#define LOGIT_DEBUG(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_DEBUG, {}, #__VA_ARGS__, __VA_ARGS__)
332#define LOGIT_DEBUG0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
333#define LOGIT_0DEBUG() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
334#define LOGIT_0_DEBUG() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
335#define LOGIT_NOARGS_DEBUG() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
336#define LOGIT_FORMAT_DEBUG(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_DEBUG, fmt, #__VA_ARGS__, __VA_ARGS__)
337#define LOGIT_PRINT_DEBUG(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_DEBUG, #__VA_ARGS__, __VA_ARGS__)
338#define LOGIT_PRINTF_DEBUG(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, logit::format(fmt, __VA_ARGS__))
341#define LOGIT_DEBUG_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, {}, #__VA_ARGS__, __VA_ARGS__)
342#define LOGIT_DEBUG0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, {})
343#define LOGIT_0DEBUG_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, {})
344#define LOGIT_0_DEBUG_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, {})
345#define LOGIT_NOARGS_DEBUG_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, {})
346#define LOGIT_FORMAT_DEBUG_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, fmt, #__VA_ARGS__, __VA_ARGS__)
347#define LOGIT_PRINT_DEBUG_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, #__VA_ARGS__, __VA_ARGS__)
348#define LOGIT_PRINTF_DEBUG_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_DEBUG, index, logit::format(fmt, __VA_ARGS__))
350#define LOGIT_DEBUG(...) do { } while (0)
351#define LOGIT_DEBUG0() do { } while (0)
352#define LOGIT_0DEBUG() do { } while (0)
353#define LOGIT_0_DEBUG() do { } while (0)
354#define LOGIT_NOARGS_DEBUG() do { } while (0)
355#define LOGIT_FORMAT_DEBUG(fmt, ...) do { } while (0)
356#define LOGIT_PRINT_DEBUG(...) do { } while (0)
357#define LOGIT_PRINTF_DEBUG(fmt, ...) do { } while (0)
358#define LOGIT_DEBUG_TO(index, ...) do { } while (0)
359#define LOGIT_DEBUG0_TO(index) do { } while (0)
360#define LOGIT_0DEBUG_TO(index) do { } while (0)
361#define LOGIT_0_DEBUG_TO(index) do { } while (0)
362#define LOGIT_NOARGS_DEBUG_TO(index) do { } while (0)
363#define LOGIT_FORMAT_DEBUG_TO(index, fmt, ...) do { } while (0)
364#define LOGIT_PRINT_DEBUG_TO(index, ...) do { } while (0)
365#define LOGIT_PRINTF_DEBUG_TO(index, fmt, ...) do { } while (0)
368#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_WARN
370#define LOGIT_WARN(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_WARN, {}, #__VA_ARGS__, __VA_ARGS__)
371#define LOGIT_WARN0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
372#define LOGIT_0WARN() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
373#define LOGIT_0_WARN() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
374#define LOGIT_NOARGS_WARN() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
375#define LOGIT_FORMAT_WARN(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_WARN, fmt, #__VA_ARGS__, __VA_ARGS__)
376#define LOGIT_PRINT_WARN(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_WARN, #__VA_ARGS__, __VA_ARGS__)
377#define LOGIT_PRINTF_WARN(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, logit::format(fmt, __VA_ARGS__))
380#define LOGIT_WARN_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, {}, #__VA_ARGS__, __VA_ARGS__)
381#define LOGIT_WARN0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, {})
382#define LOGIT_0WARN_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, {})
383#define LOGIT_0_WARN_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, {})
384#define LOGIT_NOARGS_WARN_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, {})
385#define LOGIT_FORMAT_WARN_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, fmt, #__VA_ARGS__, __VA_ARGS__)
386#define LOGIT_PRINT_WARN_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, #__VA_ARGS__, __VA_ARGS__)
387#define LOGIT_PRINTF_WARN_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_WARN, index, logit::format(fmt, __VA_ARGS__))
389#define LOGIT_WARN(...) do { } while (0)
390#define LOGIT_WARN0() do { } while (0)
391#define LOGIT_0WARN() do { } while (0)
392#define LOGIT_0_WARN() do { } while (0)
393#define LOGIT_NOARGS_WARN() do { } while (0)
394#define LOGIT_FORMAT_WARN(fmt, ...) do { } while (0)
395#define LOGIT_PRINT_WARN(...) do { } while (0)
396#define LOGIT_PRINTF_WARN(fmt, ...) do { } while (0)
397#define LOGIT_WARN_TO(index, ...) do { } while (0)
398#define LOGIT_WARN0_TO(index) do { } while (0)
399#define LOGIT_0WARN_TO(index) do { } while (0)
400#define LOGIT_0_WARN_TO(index) do { } while (0)
401#define LOGIT_NOARGS_WARN_TO(index) do { } while (0)
402#define LOGIT_FORMAT_WARN_TO(index, fmt, ...) do { } while (0)
403#define LOGIT_PRINT_WARN_TO(index, ...) do { } while (0)
404#define LOGIT_PRINTF_WARN_TO(index, fmt, ...) do { } while (0)
407#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_ERROR
409#define LOGIT_ERROR(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_ERROR, {}, #__VA_ARGS__, __VA_ARGS__)
410#define LOGIT_ERROR0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
411#define LOGIT_0ERROR() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
412#define LOGIT_0_ERROR() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
413#define LOGIT_NOARGS_ERROR() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
414#define LOGIT_FORMAT_ERROR(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_ERROR, fmt, #__VA_ARGS__, __VA_ARGS__)
415#define LOGIT_PRINT_ERROR(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_ERROR, #__VA_ARGS__, __VA_ARGS__)
416#define LOGIT_PRINTF_ERROR(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, logit::format(fmt, __VA_ARGS__))
419#define LOGIT_ERROR_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, {}, #__VA_ARGS__, __VA_ARGS__)
420#define LOGIT_ERROR0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, {})
421#define LOGIT_0ERROR_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, {})
422#define LOGIT_0_ERROR_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, {})
423#define LOGIT_NOARGS_ERROR_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, {})
424#define LOGIT_FORMAT_ERROR_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, fmt, #__VA_ARGS__, __VA_ARGS__)
425#define LOGIT_PRINT_ERROR_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, #__VA_ARGS__, __VA_ARGS__)
426#define LOGIT_PRINTF_ERROR_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_ERROR, index, logit::format(fmt, __VA_ARGS__))
428#define LOGIT_ERROR(...) do { } while (0)
429#define LOGIT_ERROR0() do { } while (0)
430#define LOGIT_0ERROR() do { } while (0)
431#define LOGIT_0_ERROR() do { } while (0)
432#define LOGIT_NOARGS_ERROR() do { } while (0)
433#define LOGIT_FORMAT_ERROR(fmt, ...) do { } while (0)
434#define LOGIT_PRINT_ERROR(...) do { } while (0)
435#define LOGIT_PRINTF_ERROR(fmt, ...) do { } while (0)
436#define LOGIT_ERROR_TO(index, ...) do { } while (0)
437#define LOGIT_ERROR0_TO(index) do { } while (0)
438#define LOGIT_0ERROR_TO(index) do { } while (0)
439#define LOGIT_0_ERROR_TO(index) do { } while (0)
440#define LOGIT_NOARGS_ERROR_TO(index) do { } while (0)
441#define LOGIT_FORMAT_ERROR_TO(index, fmt, ...) do { } while (0)
442#define LOGIT_PRINT_ERROR_TO(index, ...) do { } while (0)
443#define LOGIT_PRINTF_ERROR_TO(index, fmt, ...) do { } while (0)
446#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_FATAL
448#define LOGIT_FATAL(...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_FATAL, {}, #__VA_ARGS__, __VA_ARGS__)
449#define LOGIT_FATAL0() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
450#define LOGIT_0FATAL() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
451#define LOGIT_0_FATAL() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
452#define LOGIT_NOARGS_FATAL() LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
453#define LOGIT_FORMAT_FATAL(fmt, ...) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_FATAL, fmt, #__VA_ARGS__, __VA_ARGS__)
454#define LOGIT_PRINT_FATAL(...) LOGIT_LOG_AND_RETURN_PRINT(logit::LogLevel::LOG_LVL_FATAL, #__VA_ARGS__, __VA_ARGS__)
455#define LOGIT_PRINTF_FATAL(fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, logit::format(fmt, __VA_ARGS__))
458#define LOGIT_FATAL_TO(index, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, {}, #__VA_ARGS__, __VA_ARGS__)
459#define LOGIT_FATAL0_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, {})
460#define LOGIT_0FATAL_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, {})
461#define LOGIT_0_FATAL_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, {})
462#define LOGIT_NOARGS_FATAL_TO(index) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, {})
463#define LOGIT_FORMAT_FATAL_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, fmt, #__VA_ARGS__, __VA_ARGS__)
464#define LOGIT_PRINT_FATAL_TO(index, ...) LOGIT_LOG_AND_RETURN_PRINT_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, #__VA_ARGS__, __VA_ARGS__)
465#define LOGIT_PRINTF_FATAL_TO(index, fmt, ...) LOGIT_LOG_AND_RETURN_NOARGS_WITH_INDEX(logit::LogLevel::LOG_LVL_FATAL, index, logit::format(fmt, __VA_ARGS__))
467#define LOGIT_FATAL(...) do { } while (0)
468#define LOGIT_FATAL0() do { } while (0)
469#define LOGIT_0FATAL() do { } while (0)
470#define LOGIT_0_FATAL() do { } while (0)
471#define LOGIT_NOARGS_FATAL() do { } while (0)
472#define LOGIT_FORMAT_FATAL(fmt, ...) do { } while (0)
473#define LOGIT_PRINT_FATAL(...) do { } while (0)
474#define LOGIT_PRINTF_FATAL(fmt, ...) do { } while (0)
475#define LOGIT_FATAL_TO(index, ...) do { } while (0)
476#define LOGIT_FATAL0_TO(index) do { } while (0)
477#define LOGIT_0FATAL_TO(index) do { } while (0)
478#define LOGIT_0_FATAL_TO(index) do { } while (0)
479#define LOGIT_NOARGS_FATAL_TO(index) do { } while (0)
480#define LOGIT_FORMAT_FATAL_TO(index, fmt, ...) do { } while (0)
481#define LOGIT_PRINT_FATAL_TO(index, ...) do { } while (0)
482#define LOGIT_PRINTF_FATAL_TO(index, fmt, ...) do { } while (0)
492#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_TRACE
494#define LOGIT_TRACE_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_TRACE, {}, #__VA_ARGS__, __VA_ARGS__)
495#define LOGIT_TRACE0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
496#define LOGIT_0TRACE_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
497#define LOGIT_0_TRACE_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
498#define LOGIT_NOARGS_TRACE_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, {})
499#define LOGIT_FORMAT_TRACE_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_TRACE, fmt, #__VA_ARGS__, __VA_ARGS__)
500#define LOGIT_PRINT_TRACE_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, fmt)
501#define LOGIT_PRINTF_TRACE_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_TRACE, logit::format(fmt, __VA_ARGS__))
503#define LOGIT_TRACE_IF(condition, ...) do { } while (0)
504#define LOGIT_TRACE0_IF(condition) do { } while (0)
505#define LOGIT_0TRACE_IF(condition) do { } while (0)
506#define LOGIT_0_TRACE_IF(condition) do { } while (0)
507#define LOGIT_NOARGS_TRACE_IF(condition) do { } while (0)
508#define LOGIT_FORMAT_TRACE_IF(condition, fmt, ...) do { } while (0)
509#define LOGIT_PRINT_TRACE_IF(condition, fmt) do { } while (0)
510#define LOGIT_PRINTF_TRACE_IF(condition, fmt, ...) do { } while (0)
513#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_INFO
515#define LOGIT_INFO_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_INFO, {}, #__VA_ARGS__, __VA_ARGS__)
516#define LOGIT_INFO0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
517#define LOGIT_0INFO_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
518#define LOGIT_0_INFO_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
519#define LOGIT_NOARGS_INFO_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, {})
520#define LOGIT_FORMAT_INFO_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_INFO, fmt, #__VA_ARGS__, __VA_ARGS__)
521#define LOGIT_PRINT_INFO_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, fmt)
522#define LOGIT_PRINTF_INFO_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_INFO, logit::format(fmt, __VA_ARGS__))
524#define LOGIT_INFO_IF(condition, ...) do { } while (0)
525#define LOGIT_INFO0_IF(condition) do { } while (0)
526#define LOGIT_0INFO_IF(condition) do { } while (0)
527#define LOGIT_0_INFO_IF(condition) do { } while (0)
528#define LOGIT_NOARGS_INFO_IF(condition) do { } while (0)
529#define LOGIT_FORMAT_INFO_IF(condition, fmt, ...) do { } while (0)
530#define LOGIT_PRINT_INFO_IF(condition, fmt) do { } while (0)
531#define LOGIT_PRINTF_INFO_IF(condition, fmt, ...) do { } while (0)
534#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_DEBUG
536#define LOGIT_DEBUG_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_DEBUG, {}, #__VA_ARGS__, __VA_ARGS__)
537#define LOGIT_DEBUG0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
538#define LOGIT_0DEBUG_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
539#define LOGIT_0_DEBUG_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
540#define LOGIT_NOARGS_DEBUG_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, {})
541#define LOGIT_FORMAT_DEBUG_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_DEBUG, fmt, #__VA_ARGS__, __VA_ARGS__)
542#define LOGIT_PRINT_DEBUG_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, fmt)
543#define LOGIT_PRINTF_DEBUG_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_DEBUG, logit::format(fmt, __VA_ARGS__))
545#define LOGIT_DEBUG_IF(condition, ...) do { } while (0)
546#define LOGIT_DEBUG0_IF(condition) do { } while (0)
547#define LOGIT_0DEBUG_IF(condition) do { } while (0)
548#define LOGIT_0_DEBUG_IF(condition) do { } while (0)
549#define LOGIT_NOARGS_DEBUG_IF(condition) do { } while (0)
550#define LOGIT_FORMAT_DEBUG_IF(condition, fmt, ...) do { } while (0)
551#define LOGIT_PRINT_DEBUG_IF(condition, fmt) do { } while (0)
552#define LOGIT_PRINTF_DEBUG_IF(condition, fmt, ...) do { } while (0)
555#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_WARN
557#define LOGIT_WARN_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_WARN, {}, #__VA_ARGS__, __VA_ARGS__)
558#define LOGIT_WARN0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
559#define LOGIT_0WARN_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
560#define LOGIT_0_WARN_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
561#define LOGIT_NOARGS_WARN_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, {})
562#define LOGIT_FORMAT_WARN_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_WARN, fmt, #__VA_ARGS__, __VA_ARGS__)
563#define LOGIT_PRINT_WARN_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, fmt)
564#define LOGIT_PRINTF_WARN_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_WARN, logit::format(fmt, __VA_ARGS__))
566#define LOGIT_WARN_IF(condition, ...) do { } while (0)
567#define LOGIT_WARN0_IF(condition) do { } while (0)
568#define LOGIT_0WARN_IF(condition) do { } while (0)
569#define LOGIT_0_WARN_IF(condition) do { } while (0)
570#define LOGIT_NOARGS_WARN_IF(condition) do { } while (0)
571#define LOGIT_FORMAT_WARN_IF(condition, fmt, ...) do { } while (0)
572#define LOGIT_PRINT_WARN_IF(condition, fmt) do { } while (0)
573#define LOGIT_PRINTF_WARN_IF(condition, fmt, ...) do { } while (0)
576#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_ERROR
578#define LOGIT_ERROR_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_ERROR, {}, #__VA_ARGS__, __VA_ARGS__)
579#define LOGIT_ERROR0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
580#define LOGIT_0ERROR_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
581#define LOGIT_0_ERROR_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
582#define LOGIT_NOARGS_ERROR_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, {})
583#define LOGIT_FORMAT_ERROR_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_ERROR, fmt, #__VA_ARGS__, __VA_ARGS__)
584#define LOGIT_PRINT_ERROR_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, fmt)
585#define LOGIT_PRINTF_ERROR_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_ERROR, logit::format(fmt, __VA_ARGS__))
587#define LOGIT_ERROR_IF(condition, ...) do { } while (0)
588#define LOGIT_ERROR0_IF(condition) do { } while (0)
589#define LOGIT_0ERROR_IF(condition) do { } while (0)
590#define LOGIT_0_ERROR_IF(condition) do { } while (0)
591#define LOGIT_NOARGS_ERROR_IF(condition) do { } while (0)
592#define LOGIT_FORMAT_ERROR_IF(condition, fmt, ...) do { } while (0)
593#define LOGIT_PRINT_ERROR_IF(condition, fmt) do { } while (0)
594#define LOGIT_PRINTF_ERROR_IF(condition, fmt, ...) do { } while (0)
597#if LOGIT_COMPILED_LEVEL <= LOGIT_LEVEL_FATAL
599#define LOGIT_FATAL_IF(condition, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_FATAL, {}, #__VA_ARGS__, __VA_ARGS__)
600#define LOGIT_FATAL0_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
601#define LOGIT_0FATAL_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
602#define LOGIT_0_FATAL_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
603#define LOGIT_NOARGS_FATAL_IF(condition) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, {})
604#define LOGIT_FORMAT_FATAL_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN(logit::LogLevel::LOG_LVL_FATAL, fmt, #__VA_ARGS__, __VA_ARGS__)
605#define LOGIT_PRINT_FATAL_IF(condition, fmt) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, fmt)
606#define LOGIT_PRINTF_FATAL_IF(condition, fmt, ...) if (condition) LOGIT_LOG_AND_RETURN_NOARGS(logit::LogLevel::LOG_LVL_FATAL, logit::format(fmt, __VA_ARGS__))
608#define LOGIT_FATAL_IF(condition, ...) do { } while (0)
609#define LOGIT_FATAL0_IF(condition) do { } while (0)
610#define LOGIT_0FATAL_IF(condition) do { } while (0)
611#define LOGIT_0_FATAL_IF(condition) do { } while (0)
612#define LOGIT_NOARGS_FATAL_IF(condition) do { } while (0)
613#define LOGIT_FORMAT_FATAL_IF(condition, fmt, ...) do { } while (0)
614#define LOGIT_PRINT_FATAL_IF(condition, fmt) do { } while (0)
615#define LOGIT_PRINTF_FATAL_IF(condition, fmt, ...) do { } while (0)
620#if defined(LOGIT_SHORT_NAME)
623#define LOG_T(...) LOGIT_TRACE(__VA_ARGS__)
624#define LOG_T0() LOGIT_TRACE0()
625#define LOG_0T() LOGIT_TRACE0()
626#define LOG_0_T() LOGIT_TRACE0()
627#define LOG_T_NOARGS() LOGIT_NOARGS_TRACE()
628#define LOG_NOARGS_T() LOGIT_NOARGS_TRACE()
629#define LOG_TF(fmt, ...) LOGIT_FORMAT_TRACE(fmt, __VA_ARGS__)
630#define LOG_FT(fmt, ...) LOGIT_FORMAT_TRACE(fmt, __VA_ARGS__)
631#define LOG_T_PRINT(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
632#define LOG_PRINT_T(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
633#define LOG_T_PRINTF(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
634#define LOG_PRINTF_T(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
635#define LOG_TP(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
636#define LOG_PT(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
637#define LOG_TPF(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
638#define LOG_PFT(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
640#define LOG_TRACE(...) LOGIT_TRACE(__VA_ARGS__)
641#define LOG_TRACE0() LOGIT_TRACE0()
642#define LOG_0TRACE() LOGIT_TRACE0()
643#define LOG_0_TRACE() LOGIT_TRACE0()
644#define LOG_TRACE_NOARGS() LOGIT_NOARGS_TRACE()
645#define LOG_NOARGS_TRACE() LOGIT_NOARGS_TRACE()
646#define LOG_TRACEF(fmt, ...) LOGIT_FORMAT_TRACE(fmt, __VA_ARGS__)
647#define LOG_FTRACE(fmt, ...) LOGIT_FORMAT_TRACE(fmt, __VA_ARGS__)
648#define LOG_TRACE_PRINT(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
649#define LOG_PRINT_TRACE(...) LOGIT_PRINT_TRACE(__VA_ARGS__)
650#define LOG_TRACE_PRINTF(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
651#define LOG_PRINTF_TRACE(fmt, ...) LOGIT_PRINTF_TRACE(fmt, __VA_ARGS__)
654#define LOG_I(...) LOGIT_INFO(__VA_ARGS__)
655#define LOG_I0() LOGIT_INFO0()
656#define LOG_0I() LOGIT_INFO0()
657#define LOG_0_I() LOGIT_INFO0()
658#define LOG_I_NOARGS() LOGIT_NOARGS_INFO()
659#define LOG_NOARGS_I() LOGIT_NOARGS_INFO()
660#define LOG_IF(fmt, ...) LOGIT_FORMAT_INFO(fmt, __VA_ARGS__)
661#define LOG_FI(fmt, ...) LOGIT_FORMAT_INFO(fmt, __VA_ARGS__)
662#define LOG_I_PRINT(...) LOGIT_PRINT_INFO(__VA_ARGS__)
663#define LOG_PRINT_I(...) LOGIT_PRINT_INFO(__VA_ARGS__)
664#define LOG_I_PRINTF(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
665#define LOG_PRINTF_I(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
666#define LOG_IP(...) LOGIT_PRINT_INFO(__VA_ARGS__)
667#define LOG_PI(...) LOGIT_PRINT_INFO(__VA_ARGS__)
668#define LOG_IPF(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
669#define LOG_PFI(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
671#define LOG_INFO(...) LOGIT_INFO(__VA_ARGS__)
672#define LOG_INFO0() LOGIT_INFO0()
673#define LOG_0INFO() LOGIT_INFO0()
674#define LOG_0_INFO() LOGIT_INFO0()
675#define LOG_INFO_NOARGS() LOGIT_NOARGS_INFO()
676#define LOG_NOARGS_INFO() LOGIT_NOARGS_INFO()
677#define LOG_INFOF(fmt, ...) LOGIT_FORMAT_INFO(fmt, __VA_ARGS__)
678#define LOG_FINFO(fmt, ...) LOGIT_FORMAT_INFO(fmt, __VA_ARGS__)
679#define LOG_INFO_PRINT(...) LOGIT_PRINT_INFO(__VA_ARGS__)
680#define LOG_PRINT_INFO(...) LOGIT_PRINT_INFO(__VA_ARGS__)
681#define LOG_INFO_PRINTF(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
682#define LOG_PRINTF_INFO(fmt, ...) LOGIT_PRINTF_INFO(fmt, __VA_ARGS__)
685#define LOG_D(...) LOGIT_DEBUG(__VA_ARGS__)
686#define LOG_D0() LOGIT_DEBUG0()
687#define LOG_0D() LOGIT_DEBUG0()
688#define LOG_0_D() LOGIT_DEBUG0()
689#define LOG_D_NOARGS() LOGIT_NOARGS_DEBUG()
690#define LOG_NOARGS_D() LOGIT_NOARGS_DEBUG()
691#define LOG_DF(fmt, ...) LOGIT_FORMAT_DEBUG(fmt, __VA_ARGS__)
692#define LOG_FD(fmt, ...) LOGIT_FORMAT_DEBUG(fmt, __VA_ARGS__)
693#define LOG_D_PRINT(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
694#define LOG_PRINT_D(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
695#define LOG_D_PRINTF(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
696#define LOG_PRINTF_D(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
697#define LOG_DP(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
698#define LOG_PD(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
699#define LOG_DPF(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
700#define LOG_PFD(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
702#define LOG_DEBUG(...) LOGIT_DEBUG(__VA_ARGS__)
703#define LOG_DEBUG0() LOGIT_DEBUG0()
704#define LOG_0DEBUG() LOGIT_DEBUG0()
705#define LOG_0_DEBUG() LOGIT_DEBUG0()
706#define LOG_DEBUG_NOARGS() LOGIT_NOARGS_DEBUG()
707#define LOG_NOARGS_DEBUG() LOGIT_NOARGS_DEBUG()
708#define LOG_DEBUGF(fmt, ...) LOGIT_FORMAT_DEBUG(fmt, __VA_ARGS__)
709#define LOG_FDEBUG(fmt, ...) LOGIT_FORMAT_DEBUG(fmt, __VA_ARGS__)
710#define LOG_DEBUG_PRINT(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
711#define LOG_PRINT_DEBUG(...) LOGIT_PRINT_DEBUG(__VA_ARGS__)
712#define LOG_DEBUG_PRINTF(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
713#define LOG_PRINTF_DEBUG(fmt, ...) LOGIT_PRINTF_DEBUG(fmt, __VA_ARGS__)
716#define LOG_W(...) LOGIT_WARN(__VA_ARGS__)
717#define LOG_W0() LOGIT_WARN0()
718#define LOG_0W() LOGIT_WARN0()
719#define LOG_0_W() LOGIT_WARN0()
720#define LOG_W_NOARGS() LOGIT_NOARGS_WARN()
721#define LOG_NOARGS_W() LOGIT_NOARGS_WARN()
722#define LOG_WF(fmt, ...) LOGIT_FORMAT_WARN(fmt, __VA_ARGS__)
723#define LOG_FW(fmt, ...) LOGIT_FORMAT_WARN(fmt, __VA_ARGS__)
724#define LOG_W_PRINT(...) LOGIT_PRINT_WARN(__VA_ARGS__)
725#define LOG_PRINT_W(...) LOGIT_PRINT_WARN(__VA_ARGS__)
726#define LOG_W_PRINTF(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
727#define LOG_PRINTF_W(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
728#define LOG_WP(...) LOGIT_PRINT_WARN(__VA_ARGS__)
729#define LOG_PW(...) LOGIT_PRINT_WARN(__VA_ARGS__)
730#define LOG_WPF(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
731#define LOG_PFW(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
733#define LOG_WARN(...) LOGIT_WARN(__VA_ARGS__)
734#define LOG_WARN0() LOGIT_WARN0()
735#define LOG_0WARN() LOGIT_WARN0()
736#define LOG_0_WARN() LOGIT_WARN0()
737#define LOG_WARN_NOARGS() LOGIT_NOARGS_WARN()
738#define LOG_NOARGS_WARN() LOGIT_NOARGS_WARN()
739#define LOG_WARNF(fmt, ...) LOGIT_FORMAT_WARN(fmt, __VA_ARGS__)
740#define LOG_FWARN(fmt, ...) LOGIT_FORMAT_WARN(fmt, __VA_ARGS__)
741#define LOG_WARN_PRINT(...) LOGIT_PRINT_WARN(__VA_ARGS__)
742#define LOG_PRINT_WARN(...) LOGIT_PRINT_WARN(__VA_ARGS__)
743#define LOG_WARN_PRINTF(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
744#define LOG_PRINTF_WARN(fmt, ...) LOGIT_PRINTF_WARN(fmt, __VA_ARGS__)
747#define LOG_E(...) LOGIT_ERROR(__VA_ARGS__)
748#define LOG_E0() LOGIT_ERROR0()
749#define LOG_0E() LOGIT_ERROR0()
750#define LOG_0_E() LOGIT_ERROR0()
751#define LOG_E_NOARGS() LOGIT_NOARGS_ERROR()
752#define LOG_NOARGS_E() LOGIT_NOARGS_ERROR()
753#define LOG_EF(fmt, ...) LOGIT_FORMAT_ERROR(fmt, __VA_ARGS__)
754#define LOG_FE(fmt, ...) LOGIT_FORMAT_ERROR(fmt, __VA_ARGS__)
755#define LOG_E_PRINT(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
756#define LOG_PRINT_E(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
757#define LOG_E_PRINTF(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
758#define LOG_PRINTF_E(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
759#define LOG_EP(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
760#define LOG_PE(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
761#define LOG_EPF(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
762#define LOG_PFE(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
764#define LOG_ERROR(...) LOGIT_ERROR(__VA_ARGS__)
765#define LOG_ERROR0() LOGIT_ERROR0()
766#define LOG_0ERROR() LOGIT_ERROR0()
767#define LOG_0_ERROR() LOGIT_ERROR0()
768#define LOG_ERROR_NOARGS() LOGIT_NOARGS_ERROR()
769#define LOG_NOARGS_ERROR() LOGIT_NOARGS_ERROR()
770#define LOG_ERRORF(fmt, ...) LOGIT_FORMAT_ERROR(fmt, __VA_ARGS__)
771#define LOG_FERROR(fmt, ...) LOGIT_FORMAT_ERROR(fmt, __VA_ARGS__)
772#define LOG_ERROR_PRINT(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
773#define LOG_PRINT_ERROR(...) LOGIT_PRINT_ERROR(__VA_ARGS__)
774#define LOG_ERROR_PRINTF(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
775#define LOG_PRINTF_ERROR(fmt, ...) LOGIT_PRINTF_ERROR(fmt, __VA_ARGS__)
778#define LOG_F(...) LOGIT_FATAL(__VA_ARGS__)
779#define LOG_F0() LOGIT_FATAL0()
780#define LOG_0F() LOGIT_FATAL0()
781#define LOG_0_F() LOGIT_FATAL0()
782#define LOG_F_NOARGS() LOGIT_NOARGS_FATAL()
783#define LOG_NOARGS_F() LOGIT_NOARGS_FATAL()
784#define LOG_FF(fmt, ...) LOGIT_FORMAT_FATAL(fmt, __VA_ARGS__)
785#define LOG_F_PRINT(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
786#define LOG_PRINT_F(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
787#define LOG_F_PRINTF(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
788#define LOG_PRINTF_F(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
789#define LOG_FP(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
790#define LOG_PF(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
791#define LOG_FPF(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
792#define LOG_PFF(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
794#define LOG_FATAL(...) LOGIT_FATAL(__VA_ARGS__)
795#define LOG_FATAL0() LOGIT_FATAL0()
796#define LOG_0FATAL() LOGIT_FATAL0()
797#define LOG_0_FATAL() LOGIT_FATAL0()
798#define LOG_FATAL_NOARGS() LOGIT_NOARGS_FATAL()
799#define LOG_NOARGS_FATAL() LOGIT_NOARGS_FATAL()
800#define LOG_FATALF(fmt, ...) LOGIT_FORMAT_FATAL(fmt, __VA_ARGS__)
801#define LOG_FFATAL(fmt, ...) LOGIT_FORMAT_FATAL(fmt, __VA_ARGS__)
802#define LOG_FATAL_PRINT(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
803#define LOG_PRINT_FATAL(...) LOGIT_PRINT_FATAL(__VA_ARGS__)
804#define LOG_FATAL_PRINTF(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
805#define LOG_PRINTF_FATAL(fmt, ...) LOGIT_PRINTF_FATAL(fmt, __VA_ARGS__)
815#if __cplusplus >= 201703L
823#define LOGIT_ADD_LOGGER(logger_type, logger_args, formatter_type, formatter_args) \
824 logit::Logger::get_instance().add_logger( \
825 std::make_unique<logger_type> logger_args, \
826 std::make_unique<formatter_type> formatter_args)
835#define LOGIT_ADD_LOGGER_SINGLE_MODE(logger_type, logger_args, formatter_type, formatter_args) \
836 logit::Logger::get_instance().add_logger( \
837 std::make_unique<logger_type> logger_args, \
838 std::make_unique<formatter_type> formatter_args, \
845#define LOGIT_ADD_CONSOLE(pattern, async) \
846 logit::Logger::get_instance().add_logger( \
847 std::make_unique<logit::ConsoleLogger>(async), \
848 std::make_unique<logit::SimpleLogFormatter>(pattern));
855#define LOGIT_ADD_CONSOLE_SINGLE_MODE(pattern, async) \
856 logit::Logger::get_instance().add_logger( \
857 std::make_unique<logit::ConsoleLogger>(async), \
858 std::make_unique<logit::SimpleLogFormatter>(pattern), \
864#define LOGIT_ADD_CONSOLE_DEFAULT() \
865 logit::Logger::get_instance().add_logger( \
866 std::make_unique<logit::ConsoleLogger>(true), \
867 std::make_unique<logit::SimpleLogFormatter>(LOGIT_CONSOLE_PATTERN));
872#define LOGIT_ADD_CONSOLE_DEFAULT_SINGLE_MODE() \
873 logit::Logger::get_instance().add_logger( \
874 std::make_unique<logit::ConsoleLogger>(true), \
875 std::make_unique<logit::SimpleLogFormatter>(LOGIT_CONSOLE_PATTERN), \
884#define LOGIT_ADD_FILE_LOGGER(directory, async, auto_delete_days, pattern) \
885 logit::Logger::get_instance().add_logger( \
886 std::make_unique<logit::FileLogger>( \
887 directory, async, auto_delete_days), \
888 std::make_unique<logit::SimpleLogFormatter>(pattern));
897#define LOGIT_ADD_FILE_LOGGER_SINGLE_MODE(directory, async, auto_delete_days, pattern) \
898 logit::Logger::get_instance().add_logger( \
899 std::make_unique<logit::FileLogger>( \
900 directory, async, auto_delete_days), \
901 std::make_unique<logit::SimpleLogFormatter>(pattern), \
907#define LOGIT_ADD_FILE_LOGGER_DEFAULT() \
908 logit::Logger::get_instance().add_logger( \
909 std::make_unique<logit::FileLogger>( \
910 LOGIT_FILE_LOGGER_PATH, true, \
911 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS), \
912 std::make_unique<logit::SimpleLogFormatter>(LOGIT_FILE_LOGGER_PATTERN));
917#define LOGIT_ADD_FILE_LOGGER_DEFAULT_SINGLE_MODE() \
918 logit::Logger::get_instance().add_logger( \
919 std::make_unique<logit::FileLogger>( \
920 LOGIT_FILE_LOGGER_PATH, true, \
921 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS), \
922 std::make_unique<logit::SimpleLogFormatter>(LOGIT_FILE_LOGGER_PATTERN), \
925#define LOGIT_ADD_FILE_LOGGER_WITH_ROTATION(dir, async, days, pattern, max_bytes, max_files) \
926 logit::Logger::get_instance().add_logger( \
927 std::make_unique<logit::FileLogger>(dir, async, days, max_bytes, max_files), \
928 std::make_unique<logit::SimpleLogFormatter>(pattern))
930#define LOGIT_ADD_FILE_LOGGER_WITH_ROTATION_SINGLE_MODE(dir, async, days, pattern, max_bytes, max_files) \
931 logit::Logger::get_instance().add_logger( \
932 std::make_unique<logit::FileLogger>(dir, async, days, max_bytes, max_files), \
933 std::make_unique<logit::SimpleLogFormatter>(pattern), \
936#define LOGIT_ADD_FILE_LOGGER_DEFAULT_WITH_ROTATION() \
937 logit::Logger::get_instance().add_logger( \
938 std::make_unique<logit::FileLogger>( \
939 LOGIT_FILE_LOGGER_PATH, true, LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS, \
940 LOGIT_FILE_LOGGER_MAX_FILE_SIZE_BYTES, LOGIT_FILE_LOGGER_MAX_ROTATED_FILES, \
941 LOGIT_FILE_LOGGER_COMPRESS_ROTATED, LOGIT_FILE_LOGGER_COMPRESS_CMD), \
942 std::make_unique<logit::SimpleLogFormatter>(LOGIT_FILE_LOGGER_PATTERN))
951#define LOGIT_ADD_UNIQUE_FILE_LOGGER(directory, async, auto_delete_days, hash_length, pattern) \
952 logit::Logger::get_instance().add_logger( \
953 std::make_unique<logit::UniqueFileLogger>( \
954 directory, async, auto_delete_days, hash_length), \
955 std::make_unique<logit::SimpleLogFormatter>(pattern));
965#define LOGIT_ADD_UNIQUE_FILE_LOGGER_SINGLE_MODE(directory, async, auto_delete_days, hash_length, pattern) \
966 logit::Logger::get_instance().add_logger( \
967 std::make_unique<logit::UniqueFileLogger>( \
968 directory, async, auto_delete_days, hash_length), \
969 std::make_unique<logit::SimpleLogFormatter>(pattern), \
977#define LOGIT_ADD_UNIQUE_FILE_LOGGER_DEFAULT() \
978 logit::Logger::get_instance().add_logger( \
979 std::make_unique<logit::UniqueFileLogger>( \
980 LOGIT_UNIQUE_FILE_LOGGER_PATH, true, \
981 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS), \
982 std::make_unique<logit::SimpleLogFormatter>(LOGIT_UNIQUE_FILE_LOGGER_PATTERN));
990#define LOGIT_ADD_UNIQUE_FILE_LOGGER_DEFAULT_SINGLE_MODE() \
991 logit::Logger::get_instance().add_logger( \
992 std::make_unique<logit::UniqueFileLogger>( \
993 LOGIT_UNIQUE_FILE_LOGGER_PATH, true, \
994 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS), \
995 std::make_unique<logit::SimpleLogFormatter>(LOGIT_UNIQUE_FILE_LOGGER_PATTERN), \
1006#define LOGIT_ADD_LOGGER(logger_type, logger_args, formatter_type, formatter_args) \
1007 logit::Logger::get_instance().add_logger( \
1008 std::unique_ptr<logger_type>(new logger_type logger_args), \
1009 std::unique_ptr<formatter_type>(new formatter_type formatter_args), \
1019#define LOGIT_ADD_LOGGER_SINGLE_MODE(logger_type, logger_args, formatter_type, formatter_args) \
1020 logit::Logger::get_instance().add_logger( \
1021 std::unique_ptr<logger_type>(new logger_type logger_args), \
1022 std::unique_ptr<formatter_type>(new formatter_type formatter_args), \
1029#define LOGIT_ADD_CONSOLE(pattern, async) \
1030 logit::Logger::get_instance().add_logger( \
1031 std::unique_ptr<logit::ConsoleLogger>(new logit::ConsoleLogger(async)), \
1032 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)), \
1040#define LOGIT_ADD_CONSOLE_SINGLE_MODE(pattern, async) \
1041 logit::Logger::get_instance().add_logger( \
1042 std::unique_ptr<logit::ConsoleLogger>(new logit::ConsoleLogger(async)), \
1043 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)), \
1049#define LOGIT_ADD_CONSOLE_DEFAULT() \
1050 logit::Logger::get_instance().add_logger( \
1051 std::unique_ptr<logit::ConsoleLogger>(new logit::ConsoleLogger(true)), \
1052 std::unique_ptr<logit::SimpleLogFormatter>( \
1053 new logit::SimpleLogFormatter(LOGIT_CONSOLE_PATTERN)), \
1059#define LOGIT_ADD_CONSOLE_DEFAULT_SINGLE_MODE() \
1060 logit::Logger::get_instance().add_logger( \
1061 std::unique_ptr<logit::ConsoleLogger>(new logit::ConsoleLogger(true)), \
1062 std::unique_ptr<logit::SimpleLogFormatter>( \
1063 new logit::SimpleLogFormatter(LOGIT_CONSOLE_PATTERN)), \
1072#define LOGIT_ADD_FILE_LOGGER(directory, async, auto_delete_days, pattern) \
1073 logit::Logger::get_instance().add_logger( \
1074 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1075 directory, async, auto_delete_days)), \
1076 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)))
1085#define LOGIT_ADD_FILE_LOGGER_SINGLE_MODE(directory, async, auto_delete_days, pattern) \
1086 logit::Logger::get_instance().add_logger( \
1087 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1088 directory, async, auto_delete_days)), \
1089 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)), \
1095#define LOGIT_ADD_FILE_LOGGER_DEFAULT() \
1096 logit::Logger::get_instance().add_logger( \
1097 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1098 LOGIT_FILE_LOGGER_PATH, true, \
1099 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS)), \
1100 std::unique_ptr<logit::SimpleLogFormatter>( \
1101 new logit::SimpleLogFormatter(LOGIT_FILE_LOGGER_PATTERN)))
1106#define LOGIT_ADD_FILE_LOGGER_DEFAULT_SINGLE_MODE() \
1107 logit::Logger::get_instance().add_logger( \
1108 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1109 LOGIT_FILE_LOGGER_PATH, true, \
1110 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS)), \
1111 std::unique_ptr<logit::SimpleLogFormatter>( \
1112 new logit::SimpleLogFormatter(LOGIT_FILE_LOGGER_PATTERN)), \
1115#define LOGIT_ADD_FILE_LOGGER_WITH_ROTATION(dir, async, days, pattern, max_bytes, max_files) \
1116 logit::Logger::get_instance().add_logger( \
1117 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1118 dir, async, days, max_bytes, max_files)), \
1119 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)))
1121#define LOGIT_ADD_FILE_LOGGER_WITH_ROTATION_SINGLE_MODE(dir, async, days, pattern, max_bytes, max_files) \
1122 logit::Logger::get_instance().add_logger( \
1123 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1124 dir, async, days, max_bytes, max_files)), \
1125 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)), \
1128#define LOGIT_ADD_FILE_LOGGER_DEFAULT_WITH_ROTATION() \
1129 logit::Logger::get_instance().add_logger( \
1130 std::unique_ptr<logit::FileLogger>(new logit::FileLogger( \
1131 LOGIT_FILE_LOGGER_PATH, true, LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS, \
1132 LOGIT_FILE_LOGGER_MAX_FILE_SIZE_BYTES, LOGIT_FILE_LOGGER_MAX_ROTATED_FILES, \
1133 LOGIT_FILE_LOGGER_COMPRESS_ROTATED, LOGIT_FILE_LOGGER_COMPRESS_CMD)), \
1134 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(LOGIT_FILE_LOGGER_PATTERN)))
1143#define LOGIT_ADD_UNIQUE_FILE_LOGGER(directory, async, auto_delete_days, hash_length, pattern) \
1144 logit::Logger::get_instance().add_logger( \
1145 std::unique_ptr<logit::UniqueFileLogger>(new logit::UniqueFileLogger( \
1146 directory, async, auto_delete_days, hash_length)), \
1147 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)))
1157#define LOGIT_ADD_UNIQUE_FILE_LOGGER_SINGLE_MODE(directory, async, auto_delete_days, hash_length, pattern) \
1158 logit::Logger::get_instance().add_logger( \
1159 std::unique_ptr<logit::UniqueFileLogger>(new logit::UniqueFileLogger( \
1160 directory, async, auto_delete_days, hash_length)), \
1161 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(pattern)), \
1169#define LOGIT_ADD_UNIQUE_FILE_LOGGER_DEFAULT() \
1170 logit::Logger::get_instance().add_logger( \
1171 std::unique_ptr<logit::UniqueFileLogger>(new logit::UniqueFileLogger( \
1172 LOGIT_UNIQUE_FILE_LOGGER_PATH, true, \
1173 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS)), \
1174 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(LOGIT_UNIQUE_FILE_LOGGER_PATTERN)))
1182#define LOGIT_ADD_UNIQUE_FILE_LOGGER_DEFAULT_SINGLE_MODE() \
1183 logit::Logger::get_instance().add_logger( \
1184 std::unique_ptr<logit::UniqueFileLogger>(new logit::UniqueFileLogger( \
1185 LOGIT_UNIQUE_FILE_LOGGER_PATH, true, \
1186 LOGIT_FILE_LOGGER_AUTO_DELETE_DAYS)), \
1187 std::unique_ptr<logit::SimpleLogFormatter>(new logit::SimpleLogFormatter(LOGIT_UNIQUE_FILE_LOGGER_PATTERN)), \
1200#define LOGIT_GET_STRING_PARAM(logger_index, param) \
1201 logit::Logger::get_instance().get_string_param(logger_index, param)
1207#define LOGIT_GET_INT_PARAM(logger_index, param) \
1208 logit::Logger::get_instance().get_int_param(logger_index, param)
1214#define LOGIT_GET_FLOAT_PARAM(logger_index, param) \
1215 logit::Logger::get_instance().get_float_param(logger_index, param)
1220#define LOGIT_GET_LAST_FILE_NAME(logger_index) \
1221 logit::Logger::get_instance().get_string_param(logger_index, logit::LoggerParam::LastFileName)
1226#define LOGIT_GET_LAST_FILE_PATH(logger_index) \
1227 logit::Logger::get_instance().get_string_param(logger_index, logit::LoggerParam::LastFilePath)
1232#define LOGIT_GET_LAST_LOG_TIMESTAMP(logger_index) \
1233 logit::Logger::get_instance().get_int_param(logger_index, logit::LoggerParam::LastLogTimestamp)
1238#define LOGIT_GET_TIME_SINCE_LAST_LOG(logger_index) \
1239 logit::Logger::get_instance().get_float_param(logger_index, logit::LoggerParam::TimeSinceLastLog)
1244#define LOGIT_SET_LOGGER_ENABLED(logger_index, enabled) \
1245 logit::Logger::get_instance().set_logger_enabled(logger_index, enabled)
1250#define LOGIT_IS_LOGGER_ENABLED(logger_index) \
1251 logit::Logger::get_instance().is_logger_enabled(logger_index)
1256#define LOGIT_SET_SINGLE_MODE(logger_index, single_mode) \
1257 logit::Logger::get_instance().set_logger_single_mode(logger_index, single_mode)
1262#define LOGIT_SET_TIME_OFFSET(logger_index, offset_ms) \
1263 logit::Logger::get_instance().set_timestamp_offset(logger_index, offset_ms)
1268#define LOGIT_SET_LOG_LEVEL_TO(logger_index, level) \
1269 logit::Logger::get_instance().set_log_level(logger_index, level)
1273#define LOGIT_SET_LOG_LEVEL(level) \
1274 logit::Logger::get_instance().set_log_level(level)
1279#define LOGIT_IS_SINGLE_MODE(logger_index) \
1280 logit::Logger::get_instance().is_logger_single_mode(logger_index)
1290#define LOGIT_SET_MAX_QUEUE(size) \
1291 logit::detail::TaskExecutor::get_instance().set_max_queue_size(size)
1294#define LOGIT_QUEUE_DROP logit::detail::QueuePolicy::Drop
1297#define LOGIT_QUEUE_BLOCK logit::detail::QueuePolicy::Block
1301#define LOGIT_SET_QUEUE_POLICY(mode) \
1302 logit::detail::TaskExecutor::get_instance().set_queue_policy(mode)
1307#define LOGIT_WAIT() logit::Logger::get_instance().wait()
1310#define LOGIT_SHUTDOWN() logit::Logger::get_instance().shutdown()
#define LOGIT_LEVEL_FATAL
#define LOGIT_LEVEL_TRACE
#define LOGIT_LEVEL_DEBUG
#define LOGIT_LEVEL_ERROR
@ LOG_LVL_TRACE
Trace level logging.
@ LOG_LVL_ERROR
Error level logging.
@ LOG_LVL_INFO
Information level logging.
@ LOG_LVL_FATAL
Fatal level logging.
@ LOG_LVL_DEBUG
Debug level logging.
@ LOG_LVL_WARN
Warning level logging.