Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
load simgrid_config ASAP so that _GNU_SOURCE really get defined before stdio is loaded
[simgrid.git] / src / xbt / log.c
index e689f19..7800822 100644 (file)
@@ -240,8 +240,7 @@ producing macro (ie, use #XBT_CDEBUG, #XBT_CVERB, #XBT_CINFO, #XBT_CWARN,
 first argument.
 
 The TRACE priority is not used the same way than the other. You should use
 first argument.
 
 The TRACE priority is not used the same way than the other. You should use
-the #XBT_IN, #XBT_IN_F, #XBT_OUT and #XBT_HERE macros
-instead.
+the #XBT_IN, #XBT_OUT and #XBT_HERE macros instead.
 
 \section log_API_example 2.6 Example of use
 
 
 \section log_API_example 2.6 Example of use
 
@@ -299,7 +298,15 @@ displayed by setting a threshold to each category through the
 For example, \verbatim --log=root.thres:debug\endverbatim will make
 SimGrid <b>extremely</b> verbose while \verbatim
 --log=root.thres:critical\endverbatim should shut it almost
 For example, \verbatim --log=root.thres:debug\endverbatim will make
 SimGrid <b>extremely</b> verbose while \verbatim
 --log=root.thres:critical\endverbatim should shut it almost
-completely off.
+completely off. The full list of recognized thresholds is the following:
+
+ - trace: enter and return of some functions
+ - debug: crufty output
+ - verbose: verbose output for the user wanting more
+ - info: output about the regular functionning
+ - warning: minor issue encountered
+ - error: issue encountered
+ - critical: major issue encountered 
 
 \subsection log_use_conf_multi 3.1.2 Passing several settings
 
 
 \subsection log_use_conf_multi 3.1.2 Passing several settings
 
@@ -607,7 +614,7 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...)
   while (1) {
     xbt_log_appender_t appender = cat->appender;
     if (appender != NULL) {
   while (1) {
     xbt_log_appender_t appender = cat->appender;
     if (appender != NULL) {
-      xbt_assert1(cat->layout,
+      xbt_assert(cat->layout,
                   "No valid layout for the appender of category %s",
                   cat->name);
       cat->layout->do_layout(cat->layout, ev, fmt, appender);
                   "No valid layout for the appender of category %s",
                   cat->name);
       cat->layout->do_layout(cat->layout, ev, fmt, appender);
@@ -739,12 +746,12 @@ int _xbt_log_cat_init(xbt_log_category_t category,
   if (!xbt_log_settings)
     return priority >= category->threshold;
 
   if (!xbt_log_settings)
     return priority >= category->threshold;
 
-  xbt_assert0(category, "NULL category");
+  xbt_assert(category, "NULL category");
   xbt_assert(category->name);
 
   xbt_dynar_foreach(xbt_log_settings, cursor, setting) {
   xbt_assert(category->name);
 
   xbt_dynar_foreach(xbt_log_settings, cursor, setting) {
-    xbt_assert0(setting, "Damnit, NULL cat in the list");
-    xbt_assert1(setting->catname, "NULL setting(=%p)->catname",
+    xbt_assert(setting, "Damnit, NULL cat in the list");
+    xbt_assert(setting->catname, "NULL setting(=%p)->catname",
                 (void *) setting);
 
     if (!strcmp(setting->catname, category->name)) {
                 (void *) setting);
 
     if (!strcmp(setting->catname, category->name)) {
@@ -770,8 +777,8 @@ int _xbt_log_cat_init(xbt_log_category_t category,
 void xbt_log_parent_set(xbt_log_category_t cat, xbt_log_category_t parent)
 {
 
 void xbt_log_parent_set(xbt_log_category_t cat, xbt_log_category_t parent)
 {
 
-  xbt_assert0(cat, "NULL category to be given a parent");
-  xbt_assert1(parent, "The parent category of %s is NULL", cat->name);
+  xbt_assert(cat, "NULL category to be given a parent");
+  xbt_assert(parent, "The parent category of %s is NULL", cat->name);
 
   /*
    * if the threshold is initialized
 
   /*
    * if the threshold is initialized
@@ -859,7 +866,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
   eq = control_string;
   control_string += strcspn(control_string, " ");
 
   eq = control_string;
   control_string += strcspn(control_string, " ");
 
-  xbt_assert1(*dot == '.' && (*eq == '=' || *eq == ':'),
+  xbt_assert(*dot == '.' && (*eq == '=' || *eq == ':'),
               "Invalid control string '%s'", control_string);
 
   if (!strncmp(dot + 1, "thresh", (size_t) (eq - dot - 1))) {
               "Invalid control string '%s'", control_string);
 
   if (!strncmp(dot + 1, "thresh", (size_t) (eq - dot - 1))) {
@@ -883,7 +890,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
     if (i < xbt_log_priority_infinite) {
       set->thresh = (e_xbt_log_priority_t) i;
     } else {
     if (i < xbt_log_priority_infinite) {
       set->thresh = (e_xbt_log_priority_t) i;
     } else {
-      THROW1(arg_error, 0,
+      THROWF(arg_error, 0,
              "Unknown priority name: %s (must be one of: trace,debug,verbose,info,warning,error,critical)",
              eq + 1);
     }
              "Unknown priority name: %s (must be one of: trace,debug,verbose,info,warning,error,critical)",
              eq + 1);
     }
@@ -914,7 +921,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
     if (!strncmp(neweq, "file:", 5)) {
       set->appender = xbt_log_appender_file_new(neweq + 5);
     } else {
     if (!strncmp(neweq, "file:", 5)) {
       set->appender = xbt_log_appender_file_new(neweq + 5);
     } else {
-      THROW1(arg_error, 0, "Unknown appender log type: '%s'", neweq);
+      THROWF(arg_error, 0, "Unknown appender log type: '%s'", neweq);
     }
     free(neweq);
   } else if (!strncmp(dot + 1, "fmt", (size_t) (eq - dot - 1))) {
     }
     free(neweq);
   } else if (!strncmp(dot + 1, "fmt", (size_t) (eq - dot - 1))) {
@@ -922,7 +929,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string)
   } else {
     char buff[512];
     snprintf(buff, min(512, eq - dot), "%s", dot + 1);
   } else {
     char buff[512];
     snprintf(buff, min(512, eq - dot), "%s", dot + 1);
-    THROW1(arg_error, 0, "Unknown setting of the log category: '%s'",
+    THROWF(arg_error, 0, "Unknown setting of the log category: '%s'",
            buff);
   }
   set->catname = (char *) xbt_malloc(dot - name + 1);
            buff);
   }
   set->catname = (char *) xbt_malloc(dot - name + 1);
@@ -1044,6 +1051,7 @@ void xbt_log_appender_set(xbt_log_category_t cat, xbt_log_appender_t app)
 
 void xbt_log_layout_set(xbt_log_category_t cat, xbt_log_layout_t lay)
 {
 
 void xbt_log_layout_set(xbt_log_category_t cat, xbt_log_layout_t lay)
 {
+#define _xbt_log_cat_init(a, b) (0)
   if (!cat->appender) {
     XBT_VERB
         ("No appender to category %s. Setting the file appender as default",
   if (!cat->appender) {
     XBT_VERB
         ("No appender to category %s. Setting the file appender as default",
@@ -1058,6 +1066,7 @@ void xbt_log_layout_set(xbt_log_category_t cat, xbt_log_layout_t lay)
   }
   cat->layout = lay;
   xbt_log_additivity_set(cat, 0);
   }
   cat->layout = lay;
   xbt_log_additivity_set(cat, 0);
+#undef _xbt_log_cat_init
 }
 
 void xbt_log_additivity_set(xbt_log_category_t cat, int additivity)
 }
 
 void xbt_log_additivity_set(xbt_log_category_t cat, int additivity)