X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6a6157abf9619875297ff1d16c1e5c63c526d4c1..9a444de20a7545d1c3d10bd242f317febded25c4:/include/xbt/log.h diff --git a/include/xbt/log.h b/include/xbt/log.h index 1fa3d4de49..4338b655c2 100644 --- a/include/xbt/log.h +++ b/include/xbt/log.h @@ -1,6 +1,6 @@ /* log - a generic logging facility in the spirit of log4j */ -/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2004-2011. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -241,11 +241,7 @@ typedef struct xbt_log_category_s s_xbt_log_category_t, /* * Do NOT access any members of this structure directly. FIXME: move to private? */ -#ifdef _XBT_WIN32 -#define XBT_LOG_BUFF_SIZE 16384 /* Size of the static string in which we build the log string */ -#else -#define XBT_LOG_BUFF_SIZE 2048 /* Size of the static string in which we build the log string */ -#endif + struct xbt_log_category_s { xbt_log_category_t parent; xbt_log_category_t firstChild; @@ -265,12 +261,8 @@ struct xbt_log_event_s { const char *functionName; int lineNum; va_list ap; - va_list ap_copy; /* need a copy to launch dynamic layouts when the static ones overflowed */ -#ifdef _XBT_WIN32 char *buffer; -#else - char buffer[XBT_LOG_BUFF_SIZE]; -#endif + int buffer_size; }; /** @@ -389,24 +381,19 @@ extern xbt_log_layout_t xbt_log_default_layout; * code. * Setting the LogEvent's valist member is done inside _log_logEvent. */ -#ifdef _XBT_WIN32 -#include /* calloc */ -#define _XBT_LOG_EV_BUFFER_ZERO() \ - _log_ev.buffer = (char*) calloc(XBT_LOG_BUFF_SIZE + 1, sizeof(char)) -#else -#include /* memset */ -#define _XBT_LOG_EV_BUFFER_ZERO() \ - memset(_log_ev.buffer, 0, XBT_LOG_BUFF_SIZE) -#endif /* Logging Macros */ #ifdef XBT_LOG_MAYDAY -# define XBT_CLOG_(cat, prio, f, ...) \ - fprintf(stderr,"%s:%d:" f "%c", __FILE__, __LINE__, __VA_ARGS__) -# define XBT_CLOG(cat, prio, ...) XBT_CLOG_(cat, prio, __VA_ARGS__, '\n') +# define XBT_CLOG(cat, prio, ...) \ + _XBT_IF_ONE_ARG(_XBT_CLOG_ARG1, _XBT_CLOG_ARGN, __VA_ARGS__)(__VA_ARGS__) +# define _XBT_CLOG_ARG1(f) \ + fprintf(stderr,"%s:%d:\n" f, __FILE__, __LINE__) +# define _XBT_CLOG_ARGN(f, ...) \ + fprintf(stderr,"%s:%d:\n" f, __FILE__, __LINE__, __VA_ARGS__) # define XBT_LOG(...) XBT_CLOG(0, __VA_ARGS__) #else +# include /* memset */ # define XBT_CLOG_(catv, prio, ...) \ do { \ if (_XBT_LOG_ISENABLEDV(catv, prio)) { \ @@ -416,7 +403,6 @@ extern xbt_log_layout_t xbt_log_default_layout; _log_ev.fileName = __FILE__; \ _log_ev.functionName = _XBT_FUNCTION; \ _log_ev.lineNum = __LINE__; \ - _XBT_LOG_EV_BUFFER_ZERO(); \ _xbt_log_event_log(&_log_ev, __VA_ARGS__); \ } \ } while (0) @@ -427,8 +413,7 @@ extern xbt_log_layout_t xbt_log_default_layout; /** @ingroup XBT_log * @hideinitializer * \param c the category on which to log - * \param f the format string - * \param ... arguments of the format + * \param ... the format string and its arguments * @brief Log an event at the DEBUG priority on the specified category with these args. */ #define XBT_CDEBUG(c, ...) XBT_CLOG(c, xbt_log_priority_debug, __VA_ARGS__) @@ -465,8 +450,7 @@ extern xbt_log_layout_t xbt_log_default_layout; /** @ingroup XBT_log * @hideinitializer - * \param f the format string - * \param ... + * \param ... the format string and its arguments * @brief Log an event at the DEBUG priority on the default category with these args. */ #define XBT_DEBUG(...) XBT_LOG(xbt_log_priority_debug, __VA_ARGS__) @@ -505,10 +489,12 @@ extern xbt_log_layout_t xbt_log_default_layout; * @hideinitializer * @brief Log at TRACE priority that we entered in current function, appending a user specified format. */ -#define XBT_IN(...) XBT_IN_(__VA_ARGS__, "") -#define XBT_IN_(fmt, ...) \ - XBT_LOG(xbt_log_priority_trace, ">> begin of %s" fmt "%s", \ - _XBT_FUNCTION, __VA_ARGS__) +#define XBT_IN(...) \ + _XBT_IF_ONE_ARG(_XBT_IN_ARG1, _XBT_IN_ARGN, __VA_ARGS__)(__VA_ARGS__) +#define _XBT_IN_ARG1(fmt) \ + XBT_LOG(xbt_log_priority_trace, ">> begin of %s" fmt, _XBT_FUNCTION) +#define _XBT_IN_ARGN(fmt, ...) \ + XBT_LOG(xbt_log_priority_trace, ">> begin of %s" fmt, _XBT_FUNCTION, __VA_ARGS__) /** @ingroup XBT_log * @hideinitializer @@ -522,5 +508,186 @@ extern xbt_log_layout_t xbt_log_default_layout; */ #define XBT_HERE() XBT_LOG(xbt_log_priority_trace, "-- was here") +#ifdef XBT_USE_DEPRECATED + +/* Kept for backward compatibility. */ + +#define CLOG0(...) XBT_CLOG(__VA_ARGS__) +#define CLOG1(...) XBT_CLOG(__VA_ARGS__) +#define CLOG2(...) XBT_CLOG(__VA_ARGS__) +#define CLOG3(...) XBT_CLOG(__VA_ARGS__) +#define CLOG4(...) XBT_CLOG(__VA_ARGS__) +#define CLOG5(...) XBT_CLOG(__VA_ARGS__) +#define CLOG6(...) XBT_CLOG(__VA_ARGS__) +#define CLOG7(...) XBT_CLOG(__VA_ARGS__) +#define CLOG8(...) XBT_CLOG(__VA_ARGS__) +#define CLOG9(...) XBT_CLOG(__VA_ARGS__) +#define CLOG10(...) XBT_CLOG(__VA_ARGS__) + +#define CDEBUG0(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG1(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG2(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG3(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG4(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG5(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG6(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG7(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG8(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG9(...) XBT_CDEBUG(__VA_ARGS__) +#define CDEBUG10(...) XBT_CDEBUG(__VA_ARGS__) + +#define CVERB0(...) XBT_CVERB(__VA_ARGS__) +#define CVERB1(...) XBT_CVERB(__VA_ARGS__) +#define CVERB2(...) XBT_CVERB(__VA_ARGS__) +#define CVERB3(...) XBT_CVERB(__VA_ARGS__) +#define CVERB4(...) XBT_CVERB(__VA_ARGS__) +#define CVERB5(...) XBT_CVERB(__VA_ARGS__) +#define CVERB6(...) XBT_CVERB(__VA_ARGS__) +#define CVERB7(...) XBT_CVERB(__VA_ARGS__) +#define CVERB8(...) XBT_CVERB(__VA_ARGS__) +#define CVERB9(...) XBT_CVERB(__VA_ARGS__) +#define CVERB10(...) XBT_CVERB(__VA_ARGS__) + +#define CINFO0(...) XBT_CINFO(__VA_ARGS__) +#define CINFO1(...) XBT_CINFO(__VA_ARGS__) +#define CINFO2(...) XBT_CINFO(__VA_ARGS__) +#define CINFO3(...) XBT_CINFO(__VA_ARGS__) +#define CINFO4(...) XBT_CINFO(__VA_ARGS__) +#define CINFO5(...) XBT_CINFO(__VA_ARGS__) +#define CINFO6(...) XBT_CINFO(__VA_ARGS__) +#define CINFO7(...) XBT_CINFO(__VA_ARGS__) +#define CINFO8(...) XBT_CINFO(__VA_ARGS__) +#define CINFO9(...) XBT_CINFO(__VA_ARGS__) +#define CINFO10(...) XBT_CINFO(__VA_ARGS__) + +#define CWARN0(...) XBT_CWARN(__VA_ARGS__) +#define CWARN1(...) XBT_CWARN(__VA_ARGS__) +#define CWARN2(...) XBT_CWARN(__VA_ARGS__) +#define CWARN3(...) XBT_CWARN(__VA_ARGS__) +#define CWARN4(...) XBT_CWARN(__VA_ARGS__) +#define CWARN5(...) XBT_CWARN(__VA_ARGS__) +#define CWARN6(...) XBT_CWARN(__VA_ARGS__) +#define CWARN7(...) XBT_CWARN(__VA_ARGS__) +#define CWARN8(...) XBT_CWARN(__VA_ARGS__) +#define CWARN9(...) XBT_CWARN(__VA_ARGS__) +#define CWARN10(...) XBT_CWARN(__VA_ARGS__) + +#define CERROR0(...) XBT_CERROR(__VA_ARGS__) +#define CERROR1(...) XBT_CERROR(__VA_ARGS__) +#define CERROR2(...) XBT_CERROR(__VA_ARGS__) +#define CERROR3(...) XBT_CERROR(__VA_ARGS__) +#define CERROR4(...) XBT_CERROR(__VA_ARGS__) +#define CERROR5(...) XBT_CERROR(__VA_ARGS__) +#define CERROR6(...) XBT_CERROR(__VA_ARGS__) +#define CERROR7(...) XBT_CERROR(__VA_ARGS__) +#define CERROR8(...) XBT_CERROR(__VA_ARGS__) +#define CERROR9(...) XBT_CERROR(__VA_ARGS__) +#define CERROR10(...) XBT_CERROR(__VA_ARGS__) + +#define CCRITICAL0(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL1(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL2(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL3(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL4(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL5(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL6(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL7(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL8(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL9(...) XBT_CCRITICAL(__VA_ARGS__) +#define CCRITICAL10(...) XBT_CCRITICAL(__VA_ARGS__) + +#define LOG0(...) XBT_LOG(__VA_ARGS__) +#define LOG1(...) XBT_LOG(__VA_ARGS__) +#define LOG2(...) XBT_LOG(__VA_ARGS__) +#define LOG3(...) XBT_LOG(__VA_ARGS__) +#define LOG4(...) XBT_LOG(__VA_ARGS__) +#define LOG5(...) XBT_LOG(__VA_ARGS__) +#define LOG6(...) XBT_LOG(__VA_ARGS__) +#define LOG7(...) XBT_LOG(__VA_ARGS__) +#define LOG8(...) XBT_LOG(__VA_ARGS__) +#define LOG9(...) XBT_LOG(__VA_ARGS__) +#define LOG10(...) XBT_LOG(__VA_ARGS__) + +#define DEBUG0(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG1(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG2(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG3(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG4(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG5(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG6(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG7(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG8(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG9(...) XBT_DEBUG(__VA_ARGS__) +#define DEBUG10(...) XBT_DEBUG(__VA_ARGS__) + +#define VERB0(...) XBT_VERB(__VA_ARGS__) +#define VERB1(...) XBT_VERB(__VA_ARGS__) +#define VERB2(...) XBT_VERB(__VA_ARGS__) +#define VERB3(...) XBT_VERB(__VA_ARGS__) +#define VERB4(...) XBT_VERB(__VA_ARGS__) +#define VERB5(...) XBT_VERB(__VA_ARGS__) +#define VERB6(...) XBT_VERB(__VA_ARGS__) +#define VERB7(...) XBT_VERB(__VA_ARGS__) +#define VERB8(...) XBT_VERB(__VA_ARGS__) +#define VERB9(...) XBT_VERB(__VA_ARGS__) +#define VERB10(...) XBT_VERB(__VA_ARGS__) + +#define INFO0(...) XBT_INFO(__VA_ARGS__) +#define INFO1(...) XBT_INFO(__VA_ARGS__) +#define INFO2(...) XBT_INFO(__VA_ARGS__) +#define INFO3(...) XBT_INFO(__VA_ARGS__) +#define INFO4(...) XBT_INFO(__VA_ARGS__) +#define INFO5(...) XBT_INFO(__VA_ARGS__) +#define INFO6(...) XBT_INFO(__VA_ARGS__) +#define INFO7(...) XBT_INFO(__VA_ARGS__) +#define INFO8(...) XBT_INFO(__VA_ARGS__) +#define INFO9(...) XBT_INFO(__VA_ARGS__) +#define INFO10(...) XBT_INFO(__VA_ARGS__) + +#define WARN0(...) XBT_WARN(__VA_ARGS__) +#define WARN1(...) XBT_WARN(__VA_ARGS__) +#define WARN2(...) XBT_WARN(__VA_ARGS__) +#define WARN3(...) XBT_WARN(__VA_ARGS__) +#define WARN4(...) XBT_WARN(__VA_ARGS__) +#define WARN5(...) XBT_WARN(__VA_ARGS__) +#define WARN6(...) XBT_WARN(__VA_ARGS__) +#define WARN7(...) XBT_WARN(__VA_ARGS__) +#define WARN8(...) XBT_WARN(__VA_ARGS__) +#define WARN9(...) XBT_WARN(__VA_ARGS__) +#define WARN10(...) XBT_WARN(__VA_ARGS__) + +#define ERROR0(...) XBT_ERROR(__VA_ARGS__) +#define ERROR1(...) XBT_ERROR(__VA_ARGS__) +#define ERROR2(...) XBT_ERROR(__VA_ARGS__) +#define ERROR3(...) XBT_ERROR(__VA_ARGS__) +#define ERROR4(...) XBT_ERROR(__VA_ARGS__) +#define ERROR5(...) XBT_ERROR(__VA_ARGS__) +#define ERROR6(...) XBT_ERROR(__VA_ARGS__) +#define ERROR7(...) XBT_ERROR(__VA_ARGS__) +#define ERROR8(...) XBT_ERROR(__VA_ARGS__) +#define ERROR9(...) XBT_ERROR(__VA_ARGS__) +#define ERROR10(...) XBT_ERROR(__VA_ARGS__) + +#define CRITICAL0(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL1(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL2(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL3(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL4(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL5(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL6(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL7(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL8(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL9(...) XBT_CRITICAL(__VA_ARGS__) +#define CRITICAL10(...) XBT_CRITICAL(__VA_ARGS__) + +#define XBT_IN1(...) XBT_IN(__VA_ARGS__); +#define XBT_IN2(...) XBT_IN(__VA_ARGS__); +#define XBT_IN3(...) XBT_IN(__VA_ARGS__); +#define XBT_IN4(...) XBT_IN(__VA_ARGS__); +#define XBT_IN5(...) XBT_IN(__VA_ARGS__); +#define XBT_IN6(...) XBT_IN(__VA_ARGS__); + +#endif + SG_END_DECL() #endif /* ! _XBT_LOG_H_ */