X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a8cd62135619ad52e05ae1c929ef07e166e4260..b3b356352e87ae00a20f737c48e19b0c8413455a:/include/xbt/log.h diff --git a/include/xbt/log.h b/include/xbt/log.h index fe199ac475..68132cf47e 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-2011. The SimGrid Team. +/* Copyright (c) 2004-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -43,7 +43,9 @@ SG_BEGIN_DECL() * The different existing priorities. */ typedef enum { - xbt_log_priority_none = 0, /* used internally (don't poke with) */ + //! @cond + xbt_log_priority_none = 0, /** used internally (don't poke with)*/ + //! @endcond xbt_log_priority_trace = 1, /**< enter and return of some functions */ xbt_log_priority_debug = 2, /**< crufty output */ xbt_log_priority_verbose = 3, /**< verbose output for the user wanting more */ @@ -54,13 +56,15 @@ typedef enum { xbt_log_priority_infinite = 8, /**< value for XBT_LOG_STATIC_THRESHOLD to not log */ - xbt_log_priority_uninitialized = -1 /* used internally (don't poke with) */ + //! @cond + xbt_log_priority_uninitialized = -1 /* used internally (don't poke with) */ + //! @endcond } e_xbt_log_priority_t; /* * define NLOG to disable at compilation time any logging request - * define NDEBUG to disable at compilation time any logging request of priority below INFO + * define NDEBUG to disable at compilation time any logging request of priority below VERBOSE */ @@ -91,7 +95,7 @@ typedef enum { #define _XBT_LOG_CONCAT(x, y) x ## y #define _XBT_LOG_CONCAT2(x, y) _XBT_LOG_CONCAT(x, y) /* Apparently, constructor priorities are not supported by gcc on Macs */ -#if __GNUC__ && __APPLE__ +#if defined(__GNUC__) && defined(__APPLE__) # define _XBT_LOGV_CTOR_ATTRIBUTE #else # define _XBT_LOGV_CTOR_ATTRIBUTE _XBT_GNUC_CONSTRUCTOR(600) @@ -126,7 +130,8 @@ typedef enum { * to avoid an extra declaration of root when XBT_LOG_NEW_SUBCATEGORY is called by * XBT_LOG_NEW_CATEGORY */ #define XBT_LOG_NEW_SUBCATEGORY_helper(catName, parent, desc) \ - XBT_PUBLIC(void) _XBT_LOGV_CTOR(catName)(void) _XBT_LOGV_CTOR_ATTRIBUTE; \ + SG_BEGIN_DECL() \ + extern void _XBT_LOGV_CTOR(catName)(void) _XBT_LOGV_CTOR_ATTRIBUTE; \ void _XBT_LOGV_CTOR(catName)(void) \ { \ XBT_LOG_EXTERNAL_CATEGORY(catName); \ @@ -134,6 +139,7 @@ typedef enum { _xbt_log_cat_init(&_XBT_LOGV(catName), xbt_log_priority_uninitialized); \ } \ } \ + SG_END_DECL() \ XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(catName) = { \ &_XBT_LOGV(parent), \ NULL /* firstChild */, \ @@ -181,7 +187,7 @@ typedef enum { * Indicates which category is the default one. */ -#if defined(XBT_LOG_MAYDAY) || defined(SUPERNOVAE_MODE) /*|| defined (NLOG) * turning logging off */ +#if defined(XBT_LOG_MAYDAY) /*|| defined (NLOG) * turning logging off */ # define XBT_LOG_DEFAULT_CATEGORY(cname) #else # define XBT_LOG_DEFAULT_CATEGORY(cname) \ @@ -334,6 +340,7 @@ XBT_PUBLIC(void) xbt_log_additivity_set(xbt_log_category_t cat, XBT_PUBLIC(xbt_log_layout_t) xbt_log_layout_simple_new(char *arg); XBT_PUBLIC(xbt_log_layout_t) xbt_log_layout_format_new(char *arg); XBT_PUBLIC(xbt_log_appender_t) xbt_log_appender_file_new(char *arg); +XBT_PUBLIC(xbt_log_appender_t) xbt_log_appender2_file_new(char *arg,int roll); /* ********************************** */ @@ -347,8 +354,16 @@ XBT_PUBLIC(int) _xbt_log_cat_init(xbt_log_category_t category, e_xbt_log_priority_t priority); +#ifdef DLL_EXPORT XBT_PUBLIC_DATA(s_xbt_log_category_t) _XBT_LOGV(XBT_LOG_ROOT_CAT); - +#else +// If we `dllexport` the root log category, MinGW does not want us to +// take its address with the error: +// > initializer element is not constant +// When using auto-import, MinGW is happy. +// We should handle this for non-root log categories as well. +extern s_xbt_log_category_t _XBT_LOGV(XBT_LOG_ROOT_CAT); +#endif extern xbt_log_appender_t xbt_log_default_appender; extern xbt_log_layout_t xbt_log_default_layout;