X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3dc4265263970583f96eefc46b34e8a8577b4687..e7ba1c287b7aef37c9aedf8a953910ac5c9380e2:/src/xbt/log.c diff --git a/src/xbt/log.c b/src/xbt/log.c index 25d3f4e50d..2bcb103852 100644 --- a/src/xbt/log.c +++ b/src/xbt/log.c @@ -24,7 +24,6 @@ #include "xbt/dynar.h" #include "xbt/xbt_os_thread.h" -XBT_PUBLIC_DATA(int) (*xbt_pid) (); int xbt_log_no_loc = 0; /* if set to true (with --log=no_loc), file localization will be omitted (for tesh tests) */ static xbt_os_rmutex_t log_cat_init_mutex = NULL; @@ -100,7 +99,7 @@ controlled by the priority concept (which should maybe be renamed to severity). Empirically, the user can specify that he wants to see every debugging message -of GRAS while only being interested into the messages at level "error" or +of MSG while only being interested into the messages at level "error" or higher about the XBT internals. \subsection log_app 1.3 Message appenders @@ -187,7 +186,7 @@ format. This is usually a good idea. Here is an example of the most basic type of macro. This is a logging request with priority warning. -XBT_CLOG(MyCat, gras_log_priority_warning, "Values are: %d and '%s'", 5, +XBT_CLOG(MyCat, xbt_log_priority_warning, "Values are: %d and '%s'", 5, "oops"); A logging request is said to be enabled if its priority is higher than or @@ -256,7 +255,7 @@ XBT_LOG_NEW_CATEGORY(VSS); XBT_LOG_NEW_DEFAULT_SUBCATEGORY(SA, VSS); int main() { - / * Now set the parent's priority. (the string would typcially be a runtime option) * / + / * Now set the parent's priority. (the string would typically be a runtime option) * / xbt_log_control_set("SA.thresh:3"); / * This request is enabled, because WARNING >= INFO. * / @@ -281,19 +280,36 @@ int main() { Although rarely done, it is possible to configure the logs during program initialization by invoking the xbt_log_control_set() method manually. A more conventional way is to use the --log command line -argument. xbt_init() (called by MSG_init(), gras_init() and friends) +argument. xbt_init() (called by MSG_init() and friends) checks and deals properly with such arguments. \subsection log_use_conf_thres 3.1.1 Threshold configuration The most common setting is to control which logging event will get displayed by setting a threshold to each category through the -thres keyword. +threshold keyword. -For example, \verbatim --log=root.thres:debug\endverbatim will make +For example, \verbatim --log=root.threshold:debug\endverbatim will make SimGrid extremely verbose while \verbatim --log=root.thres:critical\endverbatim should shut it almost -completely off. The full list of recognized thresholds is the following: +completely off. + +Note that the threshold keyword can be abbreviated here. For example, +all the following notations have the same result. +\verbatim +--log=root.threshold:debug +--log=root.threshol:debug +--log=root.thresho:debug +--log=root.thresh:debug +--log=root.thres:debug +--log=root.thre:debug +--log=root.thr:debug +--log=root.th:debug +--log=root.t:debug +--log=root.:debug <--- That's obviously really ugly, but it actually works. +\endverbatim + +The full list of recognized thresholds is the following: - trace: enter and return of some functions - debug: crufty output @@ -422,10 +438,10 @@ requires an a single comparison of a static variable to a constant. There is also compile time constant, \ref XBT_LOG_STATIC_THRESHOLD, which causes all logging requests with a lower priority to be optimized to 0 cost -by the compiler. By setting it to gras_log_priority_infinite, all logging +by the compiler. By setting it to xbt_log_priority_infinite, all logging requests are statically disabled at compile time and cost nothing. Released executables might be compiled with (note that it will prevent users to debug their problems) -\verbatim-DXBT_LOG_STATIC_THRESHOLD=gras_log_priority_infinite\endverbatim +\verbatim-DXBT_LOG_STATIC_THRESHOLD=xbt_log_priority_infinite\endverbatim Compiling with the \verbatim-DNLOG\endverbatim option disables all logging requests at compilation time while the \verbatim-DNDEBUG\endverbatim disables @@ -526,25 +542,6 @@ static void xbt_log_connect_categories(void) /* Connect our log channels: that must be done manually under windows */ /* Also permit that they are correctly listed by xbt_log_help_categories() */ - /* amok */ - XBT_LOG_CONNECT(amok); - XBT_LOG_CONNECT(amok_bw); - XBT_LOG_CONNECT(amok_bw_sat); - XBT_LOG_CONNECT(amok_pm); - - /* gras */ - XBT_LOG_CONNECT(gras); - XBT_LOG_CONNECT(gras_modules); - XBT_LOG_CONNECT(gras_msg); - XBT_LOG_CONNECT(gras_msg_read); - XBT_LOG_CONNECT(gras_msg_rpc); - XBT_LOG_CONNECT(gras_timer); - XBT_LOG_CONNECT(gras_trp); - XBT_LOG_CONNECT(gras_trp_file); - XBT_LOG_CONNECT(gras_virtu); - XBT_LOG_CONNECT(gras_virtu_emul); - XBT_LOG_CONNECT(gras_virtu_process); - /* xbt */ XBT_LOG_CONNECT(xbt); XBT_LOG_CONNECT(graphxml_parse); @@ -563,36 +560,23 @@ static void xbt_log_connect_categories(void) #ifdef XBT_USE_DEPRECATED XBT_LOG_CONNECT(xbt_dict_multi); #endif - XBT_LOG_CONNECT(xbt_ddt); - XBT_LOG_CONNECT(xbt_ddt_cbps); - XBT_LOG_CONNECT(xbt_ddt_convert); - XBT_LOG_CONNECT(xbt_ddt_create); - XBT_LOG_CONNECT(xbt_ddt_exchange); - XBT_LOG_CONNECT(xbt_ddt_parse); - XBT_LOG_CONNECT(xbt_ddt_lexer); XBT_LOG_CONNECT(xbt_dyn); XBT_LOG_CONNECT(xbt_ex); XBT_LOG_CONNECT(xbt_fifo); XBT_LOG_CONNECT(xbt_graph); + XBT_LOG_CONNECT(xbt_heap); XBT_LOG_CONNECT(xbt_lib); XBT_LOG_CONNECT(xbt_mallocator); XBT_LOG_CONNECT(xbt_matrix); XBT_LOG_CONNECT(xbt_parmap); - XBT_LOG_CONNECT(xbt_parmap_unit); XBT_LOG_CONNECT(xbt_queue); XBT_LOG_CONNECT(xbt_set); XBT_LOG_CONNECT(xbt_sync); XBT_LOG_CONNECT(xbt_sync_os); - XBT_LOG_CONNECT(xbt_trp); - XBT_LOG_CONNECT(xbt_trp_meas); - XBT_LOG_CONNECT(xbt_trp_tcp); #ifdef simgrid_EXPORTS /* The following categories are only defined in libsimgrid */ - /* gras (sg) */ - XBT_LOG_CONNECT(gras_trp_sg); - /* bindings */ #ifdef HAVE_LUA XBT_LOG_CONNECT(bindings); @@ -613,6 +597,7 @@ static void xbt_log_connect_categories(void) XBT_LOG_CONNECT(instr_config); XBT_LOG_CONNECT(instr_msg); XBT_LOG_CONNECT(instr_msg_process); + XBT_LOG_CONNECT(instr_msg_vm); XBT_LOG_CONNECT(instr_paje_containers); XBT_LOG_CONNECT(instr_paje_header); XBT_LOG_CONNECT(instr_paje_trace); @@ -620,7 +605,7 @@ static void xbt_log_connect_categories(void) XBT_LOG_CONNECT(instr_paje_values); XBT_LOG_CONNECT(instr_resource); XBT_LOG_CONNECT(instr_routing); - XBT_LOG_CONNECT(instr_smpi); + XBT_LOG_CONNECT(instr_sd); XBT_LOG_CONNECT(instr_surf); #endif @@ -715,7 +700,6 @@ static void xbt_log_connect_categories(void) XBT_LOG_CONNECT(surf_route_floyd); XBT_LOG_CONNECT(surf_route_full); XBT_LOG_CONNECT(surf_route_none); - XBT_LOG_CONNECT(surf_route_rulebased); XBT_LOG_CONNECT(surf_route_vivaldi); XBT_LOG_CONNECT(surf_storage); XBT_LOG_CONNECT(surf_trace); @@ -1097,7 +1081,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string) xbt_assert(*dot == '.' && (*eq == '=' || *eq == ':'), "Invalid control string '%s'", control_string); - if (!strncmp(dot + 1, "thresh", (size_t) (eq - dot - 1))) { + if (!strncmp(dot + 1, "threshold", (size_t) (eq - dot - 1))) { int i; char *neweq = xbt_strdup(eq + 1); char *p = neweq - 1; @@ -1377,8 +1361,8 @@ static void xbt_log_help_categories_rec(xbt_log_category_t category, this_prefix = bprintf("%s \\_ ", prefix); child_prefix = bprintf("%s | ", prefix); } else { - this_prefix = bprintf("%s", prefix); - child_prefix = bprintf("%s", prefix); + this_prefix = xbt_strdup(prefix); + child_prefix = xbt_strdup(prefix); } dynar = xbt_dynar_new(sizeof(xbt_log_category_t), NULL);