X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9b414687d4775105f21c2a381ef79da87039becd..dabfc1b07f6ae6df1331c92fafb1bcd358cab558:/src/xbt/log.cpp diff --git a/src/xbt/log.cpp b/src/xbt/log.cpp index 5f37128af7..916c77baf1 100644 --- a/src/xbt/log.cpp +++ b/src/xbt/log.cpp @@ -1,19 +1,19 @@ /* log - a generic logging facility in the spirit of log4j */ -/* Copyright (c) 2004-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include "src/xbt/log_private.hpp" -#include "src/xbt_modinter.h" -#include "xbt/asserts.h" -#include "xbt/dynar.h" -#include "xbt/str.h" #include "xbt/string.hpp" +#include "xbt/sysdep.h" +#include "xbt/xbt_modinter.h" #include #include +#include +#include #include #include #include @@ -151,9 +151,7 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...) "Priority %d is greater than the biggest allowed value", ev->priority); while (true) { - const s_xbt_log_appender_t* appender = cat->appender; - - if (appender != nullptr) { + if (const s_xbt_log_appender_t* appender = cat->appender) { xbt_assert(cat->layout, "No valid layout for the appender of category %s", cat->name); /* First, try with a static buffer */ @@ -185,7 +183,7 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...) } } - if (!cat->additivity) + if (not cat->additivity) break; cat = cat->parent; } @@ -205,7 +203,7 @@ static int fake_xbt_log_cat_init(xbt_log_category_t, e_xbt_log_priority_t) return 0; } #define DISABLE_XBT_LOG_CAT_INIT() \ - int (*_xbt_log_cat_init)(xbt_log_category_t, e_xbt_log_priority_t) XBT_ATTRIB_UNUSED = fake_xbt_log_cat_init + XBT_ATTRIB_UNUSED int (*_xbt_log_cat_init)(xbt_log_category_t, e_xbt_log_priority_t) = fake_xbt_log_cat_init static void _xbt_log_cat_apply_set(xbt_log_category_t category, const xbt_log_setting_t& setting) { @@ -231,7 +229,7 @@ static void _xbt_log_cat_apply_set(xbt_log_category_t category, const xbt_log_se } if (setting.appender) { xbt_log_appender_set(category, setting.appender); - if (!category->layout) + if (not category->layout) xbt_log_layout_set(category, xbt_log_layout_simple_new(nullptr)); category->additivity = 0; XBT_DEBUG("Set %p as appender of category '%s'", setting.appender, category->name); @@ -260,7 +258,7 @@ int _xbt_log_cat_init(xbt_log_category_t category, e_xbt_log_priority_t priority category->appender = xbt_log_default_appender; category->layout = xbt_log_default_layout; } else { - if (!category->parent) + if (not category->parent) category->parent = &_XBT_LOGV(XBT_LOG_ROOT_CAT); XBT_DEBUG("Set %s (%s) as father of %s ", category->parent->name, @@ -282,9 +280,9 @@ int _xbt_log_cat_init(xbt_log_category_t category, e_xbt_log_priority_t priority } /* Apply the control */ - auto iset = std::find_if(begin(xbt_log_settings()), end(xbt_log_settings()), - [category](const xbt_log_setting_t& s) { return s.catname == category->name; }); - if (iset != xbt_log_settings().end()) { + if (auto iset = std::find_if(begin(xbt_log_settings()), end(xbt_log_settings()), + [category](const xbt_log_setting_t& s) { return s.catname == category->name; }); + iset != xbt_log_settings().end()) { _xbt_log_cat_apply_set(category, *iset); xbt_log_settings().erase(iset); } else { @@ -320,8 +318,8 @@ void xbt_log_parent_set(xbt_log_category_t cat, xbt_log_category_t parent) parent->firstChild = cat; - if (!parent->initialized) - _xbt_log_cat_init(parent, xbt_log_priority_uninitialized /* ignored */ ); + if (not parent->initialized) + (void)_xbt_log_cat_init(parent, xbt_log_priority_uninitialized /* ignored */); cat->threshold = parent->threshold; @@ -356,7 +354,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string) const char *orig_control_string = control_string; xbt_log_setting_t set; - if (!*control_string) + if (not*control_string) return set; XBT_DEBUG("Parse log setting '%s'", control_string); @@ -444,12 +442,7 @@ static xbt_log_category_t _xbt_log_cat_searchsub(xbt_log_category_t cat, const c void xbt_log_control_set(const char *control_string) { - /* To split the string in commands, and the cursors */ - xbt_dynar_t set_strings; - char *str; - unsigned int cpt; - - if (!control_string) + if (not control_string) return; XBT_DEBUG("Parse log settings '%s'", control_string); @@ -458,17 +451,16 @@ void xbt_log_control_set(const char *control_string) xbt_log_no_loc = 1; return; } - /* split the string, and remove empty entries */ - set_strings = xbt_str_split_quoted(control_string); - - if (xbt_dynar_is_empty(set_strings)) { /* vicious user! */ - xbt_dynar_free(&set_strings); - return; - } - - /* Parse each entry and either use it right now (if the category was already created), or store it for further use */ - xbt_dynar_foreach(set_strings, cpt, str) { - xbt_log_setting_t set = _xbt_log_parse_setting(str); + /* Split the string, and remove empty entries + Parse each entry and either use it right now (if the category was already created), or store it for further use */ + std::string parsed_control_string(control_string); + boost::escaped_list_separator sep("\\", " ", "\"'"); + boost::tokenizer> tok(parsed_control_string, sep); + for (const auto& str : tok) { + if (str.empty()) + continue; + + xbt_log_setting_t set = _xbt_log_parse_setting(str.c_str()); xbt_log_category_t cat = _xbt_log_cat_searchsub(&_XBT_LOGV(XBT_LOG_ROOT_CAT), set.catname.c_str()); if (cat) { @@ -480,7 +472,6 @@ void xbt_log_control_set(const char *control_string) xbt_log_settings().emplace_back(std::move(set)); } } - xbt_dynar_free(&set_strings); } void xbt_log_appender_set(xbt_log_category_t cat, xbt_log_appender_t app) @@ -496,7 +487,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) { DISABLE_XBT_LOG_CAT_INIT(); - if (!cat->appender) { + if (not cat->appender) { XBT_VERB ("No appender to category %s. Setting the file appender as default", cat->name); xbt_log_appender_set(cat, xbt_log_appender_file_new(nullptr)); } @@ -582,7 +573,7 @@ static void xbt_log_help() static void xbt_log_help_categories_rec(xbt_log_category_t category, const std::string& prefix) { - if (!category) + if (not category) return; std::string this_prefix(prefix);