55#define KCENON_LOG_ARG_COUNT(...) \
56 KCENON_LOG_ARG_COUNT_IMPL(__VA_ARGS__, 2, 1)
57#define KCENON_LOG_ARG_COUNT_IMPL(_1, _2, N, ...) N
60#define KCENON_LOG_PASTE(a, b) KCENON_LOG_PASTE_IMPL(a, b)
61#define KCENON_LOG_PASTE_IMPL(a, b) a##b
64#define KCENON_LOG_DISPATCH(LEVEL, ...) \
65 KCENON_LOG_PASTE(LEVEL##_, KCENON_LOG_ARG_COUNT(__VA_ARGS__))(__VA_ARGS__)
82#define LOG_TRACE(...) KCENON_LOG_DISPATCH(LOG_TRACE, __VA_ARGS__)
83#define LOG_TRACE_1(msg) \
84 ::kcenon::common::logging::log_trace(msg)
85#define LOG_TRACE_2(logger_name, msg) \
86 ::kcenon::common::logging::log_trace_to(logger_name, msg)
99#define LOG_DEBUG(...) KCENON_LOG_DISPATCH(LOG_DEBUG, __VA_ARGS__)
100#define LOG_DEBUG_1(msg) \
101 ::kcenon::common::logging::log_debug(msg)
102#define LOG_DEBUG_2(logger_name, msg) \
103 ::kcenon::common::logging::log_debug_to(logger_name, msg)
116#define LOG_INFO(...) KCENON_LOG_DISPATCH(LOG_INFO, __VA_ARGS__)
117#define LOG_INFO_1(msg) \
118 ::kcenon::common::logging::log_info(msg)
119#define LOG_INFO_2(logger_name, msg) \
120 ::kcenon::common::logging::log_info_to(logger_name, msg)
133#define LOG_WARNING(...) KCENON_LOG_DISPATCH(LOG_WARNING, __VA_ARGS__)
134#define LOG_WARNING_1(msg) \
135 ::kcenon::common::logging::log_warning(msg)
136#define LOG_WARNING_2(logger_name, msg) \
137 ::kcenon::common::logging::log_warning_to(logger_name, msg)
150#define LOG_ERROR(...) KCENON_LOG_DISPATCH(LOG_ERROR, __VA_ARGS__)
151#define LOG_ERROR_1(msg) \
152 ::kcenon::common::logging::log_error(msg)
153#define LOG_ERROR_2(logger_name, msg) \
154 ::kcenon::common::logging::log_error_to(logger_name, msg)
167#define LOG_CRITICAL(...) KCENON_LOG_DISPATCH(LOG_CRITICAL, __VA_ARGS__)
168#define LOG_CRITICAL_1(msg) \
169 ::kcenon::common::logging::log_critical(msg)
170#define LOG_CRITICAL_2(logger_name, msg) \
171 ::kcenon::common::logging::log_critical_to(logger_name, msg)
193#define LOG_IF(level, msg) \
195 if (::kcenon::common::logging::is_enabled(level)) { \
196 ::kcenon::common::logging::log(level, msg); \
208#define LOG_IF_TO(level, logger_name, msg) \
210 if (::kcenon::common::logging::is_enabled(level, logger_name)) { \
211 ::kcenon::common::logging::log(level, msg, logger_name); \
224 ::kcenon::common::logging::flush()
231#define LOG_FLUSH_TO(logger_name) \
232 ::kcenon::common::logging::flush(logger_name)
240#define LOG_IS_ENABLED(level) \
241 ::kcenon::common::logging::is_enabled(level)
250#define LOG_IS_ENABLED_FOR(level, logger_name) \
251 ::kcenon::common::logging::is_enabled(level, logger_name)
280#ifndef KCENON_MIN_LOG_LEVEL
281 #define KCENON_MIN_LOG_LEVEL 0
287#if KCENON_MIN_LOG_LEVEL > 0
289 #define LOG_TRACE(...) ((void)0)
292#if KCENON_MIN_LOG_LEVEL > 1
294 #define LOG_DEBUG(...) ((void)0)
297#if KCENON_MIN_LOG_LEVEL > 2
299 #define LOG_INFO(...) ((void)0)
302#if KCENON_MIN_LOG_LEVEL > 3
304 #define LOG_WARNING(...) ((void)0)
307#if KCENON_MIN_LOG_LEVEL > 4
309 #define LOG_ERROR(...) ((void)0)
312#if KCENON_MIN_LOG_LEVEL > 5
314 #define LOG_CRITICAL(...) ((void)0)
Unified logging functions with source_location support.