25 #ifndef LOG4CPLUS_LOGGING_MACROS_HEADER_ 26 #define LOG4CPLUS_LOGGING_MACROS_HEADER_ 30 #if defined (LOG4CPLUS_HAVE_PRAGMA_ONCE) 43 #define LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 44 __pragma (warning (push)) \ 45 __pragma (warning (disable:4127)) 47 #define LOG4CPLUS_RESTORE_DOWHILE_WARNING() \ 48 __pragma (warning (pop)) 51 #define LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() 52 #define LOG4CPLUS_RESTORE_DOWHILE_WARNING() 56 #define LOG4CPLUS_DOWHILE_NOTHING() \ 57 LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 59 LOG4CPLUS_RESTORE_DOWHILE_WARNING() 61 #if defined(LOG4CPLUS_DISABLE_FATAL) && !defined(LOG4CPLUS_DISABLE_ERROR) 62 #define LOG4CPLUS_DISABLE_ERROR 64 #if defined(LOG4CPLUS_DISABLE_ERROR) && !defined(LOG4CPLUS_DISABLE_WARN) 65 #define LOG4CPLUS_DISABLE_WARN 67 #if defined(LOG4CPLUS_DISABLE_WARN) && !defined(LOG4CPLUS_DISABLE_INFO) 68 #define LOG4CPLUS_DISABLE_INFO 70 #if defined(LOG4CPLUS_DISABLE_INFO) && !defined(LOG4CPLUS_DISABLE_DEBUG) 71 #define LOG4CPLUS_DISABLE_DEBUG 73 #if defined(LOG4CPLUS_DISABLE_DEBUG) && !defined(LOG4CPLUS_DISABLE_TRACE) 74 #define LOG4CPLUS_DISABLE_TRACE 105 return std::move (logger);
143 #undef LOG4CPLUS_MACRO_FUNCTION 144 #define LOG4CPLUS_MACRO_FUNCTION() nullptr 145 #if ! defined (LOG4CPLUS_DISABLE_FUNCTION_MACRO) 146 # if defined (LOG4CPLUS_HAVE_FUNCSIG_MACRO) 147 # undef LOG4CPLUS_MACRO_FUNCTION 148 # define LOG4CPLUS_MACRO_FUNCTION() __FUNCSIG__ 149 # elif defined (LOG4CPLUS_HAVE_PRETTY_FUNCTION_MACRO) 150 # undef LOG4CPLUS_MACRO_FUNCTION 151 # define LOG4CPLUS_MACRO_FUNCTION() __PRETTY_FUNCTION__ 152 # elif defined (LOG4CPLUS_HAVE_FUNCTION_MACRO) 153 # undef LOG4CPLUS_MACRO_FUNCTION 154 # define LOG4CPLUS_MACRO_FUNCTION() __FUNCTION__ 155 # elif defined (LOG4CPLUS_HAVE_FUNC_SYMBOL) 156 # undef LOG4CPLUS_MACRO_FUNCTION 157 # define LOG4CPLUS_MACRO_FUNCTION() __func__ 164 #define LOG4CPLUS_MACRO_TRACE_LOG_LEVEL(pred) \ 165 LOG4CPLUS_UNLIKELY (pred) 166 #define LOG4CPLUS_MACRO_DEBUG_LOG_LEVEL(pred) \ 167 LOG4CPLUS_UNLIKELY (pred) 168 #define LOG4CPLUS_MACRO_INFO_LOG_LEVEL(pred) \ 169 LOG4CPLUS_LIKELY (pred) 170 #define LOG4CPLUS_MACRO_WARN_LOG_LEVEL(pred) \ 171 LOG4CPLUS_LIKELY (pred) 172 #define LOG4CPLUS_MACRO_ERROR_LOG_LEVEL(pred) \ 173 LOG4CPLUS_LIKELY (pred) 174 #define LOG4CPLUS_MACRO_FATAL_LOG_LEVEL(pred) \ 175 LOG4CPLUS_LIKELY (pred) 179 #define LOG4CPLUS_MACRO_LOGLEVEL_PRED(pred, logLevel) \ 180 LOG4CPLUS_MACRO_ ## logLevel (pred) 185 #if defined (LOG4CPLUS_MACRO_DISABLE_TLS) 186 # define LOG4CPLUS_MACRO_INSTANTIATE_OSTRINGSTREAM(var) \ 187 log4cplus::tostringstream var 189 # define LOG4CPLUS_MACRO_INSTANTIATE_SNPRINTF_BUF(var) \ 190 log4cplus::helpers::snprintf_buf var 193 # define LOG4CPLUS_MACRO_INSTANTIATE_OSTRINGSTREAM(var) \ 194 log4cplus::tostringstream & var \ 195 = log4cplus::detail::get_macro_body_oss () 197 # define LOG4CPLUS_MACRO_INSTANTIATE_SNPRINTF_BUF(var) \ 198 log4cplus::helpers::snprintf_buf & var \ 199 = log4cplus::detail::get_macro_body_snprintf_buf () 204 #define LOG4CPLUS_MACRO_BODY(logger, logEvent, logLevel) \ 205 LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 207 log4cplus::Logger const & _l \ 208 = log4cplus::detail::macros_get_logger (logger); \ 209 if (LOG4CPLUS_MACRO_LOGLEVEL_PRED ( \ 210 _l.isEnabledFor (log4cplus::logLevel), logLevel)) { \ 211 LOG4CPLUS_MACRO_INSTANTIATE_OSTRINGSTREAM (_log4cplus_buf); \ 212 _log4cplus_buf << logEvent; \ 213 log4cplus::detail::macro_forced_log (_l, \ 214 log4cplus::logLevel, _log4cplus_buf.str(), \ 215 __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \ 218 LOG4CPLUS_RESTORE_DOWHILE_WARNING() 221 #define LOG4CPLUS_MACRO_STR_BODY(logger, logEvent, logLevel) \ 222 LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 224 log4cplus::Logger const & _l \ 225 = log4cplus::detail::macros_get_logger (logger); \ 226 if (LOG4CPLUS_MACRO_LOGLEVEL_PRED ( \ 227 _l.isEnabledFor (log4cplus::logLevel), logLevel)) { \ 228 log4cplus::detail::macro_forced_log (_l, \ 229 log4cplus::logLevel, logEvent, \ 230 __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \ 233 LOG4CPLUS_RESTORE_DOWHILE_WARNING() 235 #define LOG4CPLUS_MACRO_FMT_BODY(logger, logLevel, ...) \ 236 LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 238 log4cplus::Logger const & _l \ 239 = log4cplus::detail::macros_get_logger (logger); \ 240 if (LOG4CPLUS_MACRO_LOGLEVEL_PRED ( \ 241 _l.isEnabledFor (log4cplus::logLevel), logLevel)) { \ 242 LOG4CPLUS_MACRO_INSTANTIATE_SNPRINTF_BUF (_snpbuf); \ 243 log4cplus::tchar const * _logEvent \ 244 = _snpbuf.print (__VA_ARGS__); \ 245 log4cplus::detail::macro_forced_log (_l, \ 246 log4cplus::logLevel, _logEvent, \ 247 __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); \ 250 LOG4CPLUS_RESTORE_DOWHILE_WARNING() 258 #if !defined(LOG4CPLUS_DISABLE_TRACE) 259 #define LOG4CPLUS_TRACE_METHOD(logger, logEvent) \ 260 log4cplus::TraceLogger _log4cplus_trace_logger(logger, logEvent, \ 261 __FILE__, __LINE__, LOG4CPLUS_MACRO_FUNCTION ()); 262 #define LOG4CPLUS_TRACE(logger, logEvent) \ 263 LOG4CPLUS_MACRO_BODY (logger, logEvent, TRACE_LOG_LEVEL) 264 #define LOG4CPLUS_TRACE_STR(logger, logEvent) \ 265 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, TRACE_LOG_LEVEL) 266 #define LOG4CPLUS_TRACE_FMT(logger, ...) \ 267 LOG4CPLUS_MACRO_FMT_BODY (logger, TRACE_LOG_LEVEL, __VA_ARGS__) 270 #define LOG4CPLUS_TRACE_METHOD(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 271 #define LOG4CPLUS_TRACE(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 272 #define LOG4CPLUS_TRACE_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 273 #define LOG4CPLUS_TRACE_FMT(logger, logFmt, ...) LOG4CPLUS_DOWHILE_NOTHING() 282 #if !defined(LOG4CPLUS_DISABLE_DEBUG) 283 #define LOG4CPLUS_DEBUG(logger, logEvent) \ 284 LOG4CPLUS_MACRO_BODY (logger, logEvent, DEBUG_LOG_LEVEL) 285 #define LOG4CPLUS_DEBUG_STR(logger, logEvent) \ 286 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, DEBUG_LOG_LEVEL) 287 #define LOG4CPLUS_DEBUG_FMT(logger, ...) \ 288 LOG4CPLUS_MACRO_FMT_BODY (logger, DEBUG_LOG_LEVEL, __VA_ARGS__) 291 #define LOG4CPLUS_DEBUG(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 292 #define LOG4CPLUS_DEBUG_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 293 #define LOG4CPLUS_DEBUG_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING() 302 #if !defined(LOG4CPLUS_DISABLE_INFO) 303 #define LOG4CPLUS_INFO(logger, logEvent) \ 304 LOG4CPLUS_MACRO_BODY (logger, logEvent, INFO_LOG_LEVEL) 305 #define LOG4CPLUS_INFO_STR(logger, logEvent) \ 306 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, INFO_LOG_LEVEL) 307 #define LOG4CPLUS_INFO_FMT(logger, ...) \ 308 LOG4CPLUS_MACRO_FMT_BODY (logger, INFO_LOG_LEVEL, __VA_ARGS__) 311 #define LOG4CPLUS_INFO(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 312 #define LOG4CPLUS_INFO_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 313 #define LOG4CPLUS_INFO_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING() 322 #if !defined(LOG4CPLUS_DISABLE_WARN) 323 #define LOG4CPLUS_WARN(logger, logEvent) \ 324 LOG4CPLUS_MACRO_BODY (logger, logEvent, WARN_LOG_LEVEL) 325 #define LOG4CPLUS_WARN_STR(logger, logEvent) \ 326 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, WARN_LOG_LEVEL) 327 #define LOG4CPLUS_WARN_FMT(logger, ...) \ 328 LOG4CPLUS_MACRO_FMT_BODY (logger, WARN_LOG_LEVEL, __VA_ARGS__) 331 #define LOG4CPLUS_WARN(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 332 #define LOG4CPLUS_WARN_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 333 #define LOG4CPLUS_WARN_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING() 342 #if !defined(LOG4CPLUS_DISABLE_ERROR) 343 #define LOG4CPLUS_ERROR(logger, logEvent) \ 344 LOG4CPLUS_MACRO_BODY (logger, logEvent, ERROR_LOG_LEVEL) 345 #define LOG4CPLUS_ERROR_STR(logger, logEvent) \ 346 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, ERROR_LOG_LEVEL) 347 #define LOG4CPLUS_ERROR_FMT(logger, ...) \ 348 LOG4CPLUS_MACRO_FMT_BODY (logger, ERROR_LOG_LEVEL, __VA_ARGS__) 351 #define LOG4CPLUS_ERROR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 352 #define LOG4CPLUS_ERROR_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 353 #define LOG4CPLUS_ERROR_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING() 362 #if !defined(LOG4CPLUS_DISABLE_FATAL) 363 #define LOG4CPLUS_FATAL(logger, logEvent) \ 364 LOG4CPLUS_MACRO_BODY (logger, logEvent, FATAL_LOG_LEVEL) 365 #define LOG4CPLUS_FATAL_STR(logger, logEvent) \ 366 LOG4CPLUS_MACRO_STR_BODY (logger, logEvent, FATAL_LOG_LEVEL) 367 #define LOG4CPLUS_FATAL_FMT(logger, ...) \ 368 LOG4CPLUS_MACRO_FMT_BODY (logger, FATAL_LOG_LEVEL, __VA_ARGS__) 371 #define LOG4CPLUS_FATAL(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 372 #define LOG4CPLUS_FATAL_STR(logger, logEvent) LOG4CPLUS_DOWHILE_NOTHING() 373 #define LOG4CPLUS_FATAL_FMT(logger, ...) LOG4CPLUS_DOWHILE_NOTHING() 378 #define LOG4CPLUS_ASSERT_STRINGIFY(X) #X 383 #define LOG4CPLUS_ASSERT(logger, condition) \ 384 LOG4CPLUS_SUPPRESS_DOWHILE_WARNING() \ 386 if (LOG4CPLUS_UNLIKELY(! (condition))) \ 387 LOG4CPLUS_FATAL_STR ((logger), \ 388 LOG4CPLUS_TEXT ("failed condition: ") \ 389 LOG4CPLUS_TEXT (LOG4CPLUS_ASSERT_STRINGIFY (condition))); \ 391 LOG4CPLUS_RESTORE_DOWHILE_WARNING() LOG4CPLUS_EXPORT log4cplus::helpers::snprintf_buf & get_macro_body_snprintf_buf()
Logger macros_get_logger(Logger const &logger)
std::basic_ostringstream< tchar > tostringstream
This is the central class in the log4cplus package.
LOG4CPLUS_EXPORT void clear_tostringstream(tostringstream &)
LOG4CPLUS_EXPORT void macro_forced_log(log4cplus::Logger const &, log4cplus::LogLevel, log4cplus::tstring const &, char const *, int, char const *)
LOG4CPLUS_EXPORT log4cplus::tostringstream & get_macro_body_oss()
std::basic_string< tchar > tstring
This header defines the Logger class and the logging macros.
int LogLevel
Defines the minimum set of priorities recognized by the system, that is FATAL_LOG_LEVEL,...
static Logger getInstance(const log4cplus::tstring &name)
Retrieve a logger with name name.