|
|
@@ -5,7 +5,7 @@
|
|
|
// Author: Tad E. Smith
|
|
|
//
|
|
|
//
|
|
|
-// Copyright 2003-2015 Tad E. Smith
|
|
|
+// Copyright 2003-2017 Tad E. Smith
|
|
|
//
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
@@ -42,7 +42,7 @@
|
|
|
#if defined(_MSC_VER)
|
|
|
#define LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \
|
|
|
__pragma (warning (push)) \
|
|
|
- __pragma (warning (disable:4127))
|
|
|
+ __pragma (warning (disable:4127))
|
|
|
|
|
|
#define LOG4CPLUS_RESTORE_DOWHILE_WARNING() \
|
|
|
__pragma (warning (pop))
|
|
|
@@ -98,7 +98,6 @@ macros_get_logger (Logger & logger)
|
|
|
}
|
|
|
|
|
|
|
|
|
-#if defined (LOG4CPLUS_HAVE_RVALUE_REFS)
|
|
|
inline
|
|
|
Logger
|
|
|
macros_get_logger (Logger && logger)
|
|
|
@@ -106,9 +105,6 @@ macros_get_logger (Logger && logger)
|
|
|
return std::move (logger);
|
|
|
}
|
|
|
|
|
|
-#endif
|
|
|
-
|
|
|
-
|
|
|
inline
|
|
|
Logger
|
|
|
macros_get_logger (tstring const & logger)
|
|
|
@@ -145,7 +141,7 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
|
|
|
|
|
|
#undef LOG4CPLUS_MACRO_FUNCTION
|
|
|
-#define LOG4CPLUS_MACRO_FUNCTION() 0
|
|
|
+#define LOG4CPLUS_MACRO_FUNCTION() nullptr
|
|
|
#if ! defined (LOG4CPLUS_DISABLE_FUNCTION_MACRO)
|
|
|
# if defined (LOG4CPLUS_HAVE_FUNCSIG_MACRO)
|
|
|
# undef LOG4CPLUS_MACRO_FUNCTION
|
|
|
@@ -162,6 +158,13 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
# endif
|
|
|
#endif
|
|
|
|
|
|
+#undef LOG4CPLUS_MACRO_FILE
|
|
|
+#define LOG4CPLUS_MACRO_FILE() nullptr
|
|
|
+#if ! defined (LOG4CPLUS_DISABLE_FILE_MACRO)
|
|
|
+# undef LOG4CPLUS_MACRO_FILE
|
|
|
+# define LOG4CPLUS_MACRO_FILE() __FILE__
|
|
|
+#endif
|
|
|
+
|
|
|
|
|
|
// Make TRACE and DEBUG log level unlikely and INFO, WARN, ERROR and
|
|
|
// FATAL log level likely.
|
|
|
@@ -216,7 +219,8 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
_log4cplus_buf << logEvent; \
|
|
|
log4cplus::detail::macro_forced_log (_l, \
|
|
|
log4cplus::logLevel, _log4cplus_buf.str(), \
|
|
|
- __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
+ LOG4CPLUS_MACRO_FILE (), __LINE__, \
|
|
|
+ LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
} \
|
|
|
} while (0) \
|
|
|
LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
@@ -231,12 +235,12 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
_l.isEnabledFor (log4cplus::logLevel), logLevel)) { \
|
|
|
log4cplus::detail::macro_forced_log (_l, \
|
|
|
log4cplus::logLevel, logEvent, \
|
|
|
- __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
+ LOG4CPLUS_MACRO_FILE (), __LINE__, \
|
|
|
+ LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
} \
|
|
|
} while(0) \
|
|
|
LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_MACRO_FMT_BODY(logger, logLevel, ...) \
|
|
|
LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \
|
|
|
do { \
|
|
|
@@ -249,32 +253,12 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
= _snpbuf.print (__VA_ARGS__); \
|
|
|
log4cplus::detail::macro_forced_log (_l, \
|
|
|
log4cplus::logLevel, _logEvent, \
|
|
|
- __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
- } \
|
|
|
- } while(0) \
|
|
|
- LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
-
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_MACRO_FMT_BODY(logger, logLevel, logArgs...) \
|
|
|
- LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \
|
|
|
- do { \
|
|
|
- log4cplus::Logger const & _l \
|
|
|
- = log4cplus::detail::macros_get_logger (logger); \
|
|
|
- if (LOG4CPLUS_MACRO_LOGLEVEL_PRED ( \
|
|
|
- _l.isEnabledFor (log4cplus::logLevel), logLevel)) { \
|
|
|
- LOG4CPLUS_MACRO_INSTANTIATE_SNPRINTF_BUF (_snpbuf); \
|
|
|
- log4cplus::tchar const * _logEvent \
|
|
|
- = _snpbuf.print (logArgs); \
|
|
|
- log4cplus::detail::macro_forced_log (_l, \
|
|
|
- log4cplus::logLevel, _logEvent, \
|
|
|
- __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
+ LOG4CPLUS_MACRO_FILE (), __LINE__, \
|
|
|
+ LOG4CPLUS_MACRO_FUNCTION ()); \
|
|
|
} \
|
|
|
} while(0) \
|
|
|
LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
|
|
|
-#endif
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* @def LOG4CPLUS_TRACE(logger, logEvent) This macro creates a
|
|
|
* TraceLogger to log a TRACE_LOG_LEVEL message to <code>logger</code>
|
|
|
@@ -284,29 +268,20 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
#if !defined(LOG4CPLUS_DISABLE_TRACE)
|
|
|
#define LOG4CPLUS_TRACE_METHOD(logger, logEvent) \
|
|
|
log4cplus::TraceLogger _log4cplus_trace_logger(logger, logEvent, \
|
|
|
- __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ());
|
|
|
+ LOG4CPLUS_MACRO_FILE (), __LINE__, \
|
|
|
+ LOG4CPLUS_MACRO_FUNCTION ());
|
|
|
#define LOG4CPLUS_TRACE(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, TRACE_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_TRACE_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, TRACE_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_TRACE_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, TRACE_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_TRACE_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, TRACE_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_TRACE_METHOD(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_TRACE(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_TRACE_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_TRACE_FMT(logger, logFmt, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_TRACE_FMT(logger, logFmt, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -320,23 +295,13 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, DEBUG_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_DEBUG_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, DEBUG_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_DEBUG_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, DEBUG_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_DEBUG_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, DEBUG_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_DEBUG(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_DEBUG_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_DEBUG_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_DEBUG_FMT(logger, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -350,23 +315,13 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, INFO_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_INFO_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, INFO_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_INFO_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, INFO_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_INFO_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, INFO_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_INFO(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_INFO_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_INFO_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_INFO_FMT(logger, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -380,23 +335,13 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, WARN_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_WARN_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, WARN_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_WARN_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, WARN_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_WARN_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, WARN_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_WARN(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_WARN_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_WARN_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_WARN_FMT(logger, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -410,23 +355,13 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, ERROR_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_ERROR_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, ERROR_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_ERROR_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, ERROR_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_ERROR_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, ERROR_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_ERROR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_ERROR_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_ERROR_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_ERROR_FMT(logger, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -440,32 +375,21 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
LOG4CPLUS_MACRO_BODY (logger, logEvent, FATAL_LOG_LEVEL)
|
|
|
#define LOG4CPLUS_FATAL_STR(logger, logEvent) \
|
|
|
LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, FATAL_LOG_LEVEL)
|
|
|
-
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_FATAL_FMT(logger, ...) \
|
|
|
LOG4CPLUS_MACRO_FMT_BODY (logger, FATAL_LOG_LEVEL, __VA_ARGS__)
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_FATAL_FMT(logger, logArgs...) \
|
|
|
- LOG4CPLUS_MACRO_FMT_BODY(logger, FATAL_LOG_LEVEL, logArgs)
|
|
|
-#endif
|
|
|
|
|
|
#else
|
|
|
#define LOG4CPLUS_FATAL(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
#define LOG4CPLUS_FATAL_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#if defined (LOG4CPLUS_HAVE_C99_VARIADIC_MACROS)
|
|
|
#define LOG4CPLUS_FATAL_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#elif defined (LOG4CPLUS_HAVE_GNU_VARIADIC_MACROS)
|
|
|
-#define LOG4CPLUS_FATAL_FMT(logger, logArgs...) LOG4CPLUS_DOWHILE_NOTHING()
|
|
|
-#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
//! Helper macro for LOG4CPLUS_ASSERT() macro.
|
|
|
#define LOG4CPLUS_ASSERT_STRINGIFY(X) #X
|
|
|
|
|
|
-//! If the condition given in second parameter evaluates false, this
|
|
|
-//! macro logs it using FATAL log level, including the condition's
|
|
|
-//! source text.
|
|
|
+//! If the `condition` evaluates false, this macro logs it using FATAL
|
|
|
+//! log level, including the `condition`'s source text.
|
|
|
#define LOG4CPLUS_ASSERT(logger, condition) \
|
|
|
LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \
|
|
|
do { \
|
|
|
@@ -476,5 +400,16 @@ LOG4CPLUS_EXPORT void macro_forced_log (log4cplus::Logger const &,
|
|
|
} while (0) \
|
|
|
LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
|
|
|
+//! If the `condition` evaluates false, this macro logs a message
|
|
|
+//! formatted from `printf` format string passed in 3rd and remaining
|
|
|
+//! arguments.
|
|
|
+#define LOG4CPLUS_ASSERT_FMT(logger, condition, ...) \
|
|
|
+ LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \
|
|
|
+ do { \
|
|
|
+ if (! (condition)) [[unlikely]] { \
|
|
|
+ LOG4CPLUS_FATAL_FMT ((logger), __VA_ARGS__); \
|
|
|
+ } \
|
|
|
+ } while (false) \
|
|
|
+ LOG4CPLUS_RESTORE_DOWHILE_WARNING()
|
|
|
|
|
|
#endif /* LOG4CPLUS_LOGGING_MACROS_HEADER_ */
|