X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/355e716d62ca240e1743c8e98d9727ed48bbe900..84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6:/src/xbt/log.cpp diff --git a/src/xbt/log.cpp b/src/xbt/log.cpp index ec4939dfd0..0f28f5d473 100644 --- a/src/xbt/log.cpp +++ b/src/xbt/log.cpp @@ -1,15 +1,16 @@ /* log - a generic logging facility in the spirit of log4j */ -/* Copyright (c) 2004-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2004-2020. 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_modinter.h" #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 #include @@ -122,10 +123,8 @@ void xbt_log_init(int *argc, char **argv) } } -static void log_cat_exit(xbt_log_category_t cat) +static void log_cat_exit(const s_xbt_log_category_t* cat) { - xbt_log_category_t child; - if (cat->appender) { if (cat->appender->free_) cat->appender->free_(cat->appender); @@ -137,7 +136,7 @@ static void log_cat_exit(xbt_log_category_t cat) xbt_free(cat->layout); } - for (child = cat->firstChild; child != nullptr; child = child->nextSibling) + for (auto const* child = cat->firstChild; child != nullptr; child = child->nextSibling) log_cat_exit(child); } @@ -156,14 +155,14 @@ static constexpr size_t XBT_LOG_DYNAMIC_BUFFER_SIZE = 4096; void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...) { - xbt_log_category_t cat = ev->cat; + const xbt_log_category_s* cat = ev->cat; xbt_assert(ev->priority >= 0, "Negative logging priority naturally forbidden"); xbt_assert(static_cast(ev->priority) < sizeof(xbt_log_priority_names)/sizeof(xbt_log_priority_names[0]), "Priority %d is greater than the biggest allowed value", ev->priority); while (1) { - xbt_log_appender_t appender = cat->appender; + const s_xbt_log_appender_t* appender = cat->appender; if (appender != nullptr) { xbt_assert(cat->layout, "No valid layout for the appender of category %s", cat->name); @@ -179,7 +178,6 @@ void _xbt_log_event_log(xbt_log_event_t ev, const char *fmt, ...) if (done) { appender->do_append(appender, buff); } else { - /* The static buffer was too small, use a dynamically expanded one */ ev->buffer_size = XBT_LOG_DYNAMIC_BUFFER_SIZE; ev->buffer = static_cast(xbt_malloc(ev->buffer_size)); @@ -282,7 +280,7 @@ int _xbt_log_cat_init(xbt_log_category_t category, e_xbt_log_priority_t priority if (XBT_LOG_ISENABLED(log, xbt_log_priority_debug)) { std::string res; - xbt_log_category_t cpp = category->parent->firstChild; + const xbt_log_category_s* cpp = category->parent->firstChild; while (cpp) { res += std::string(" ") + cpp->name; cpp = cpp->nextSibling; @@ -340,7 +338,7 @@ void xbt_log_parent_set(xbt_log_category_t cat, xbt_log_category_t parent) cat->isThreshInherited = 1; } -static void _set_inherited_thresholds(xbt_log_category_t cat) +static void _set_inherited_thresholds(const s_xbt_log_category_t* cat) { xbt_log_category_t child = cat->firstChild; @@ -405,8 +403,8 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string) }else if (i < xbt_log_priority_infinite) { set.thresh = (e_xbt_log_priority_t)i; } else { - THROWF(arg_error, 0, - "Unknown priority name: %s (must be one of: trace,debug,verbose,info,warning,error,critical)", value); + throw std::invalid_argument(simgrid::xbt::string_printf( + "Unknown priority name: %s (must be one of: trace,debug,verbose,info,warning,error,critical)", value)); } } else if (strncmp(option, "additivity", option_len) == 0) { set.additivity = (strcasecmp(value, "ON") == 0 || strcasecmp(value, "YES") == 0 || strcmp(value, "1") == 0); @@ -422,7 +420,7 @@ static xbt_log_setting_t _xbt_log_parse_setting(const char *control_string) } else if (strcmp(value, "stdout") == 0) { set.appender = xbt_log_appender_stream(stdout); } else { - THROWF(arg_error, 0, "Unknown appender log type: '%s'", value); + throw std::invalid_argument(simgrid::xbt::string_printf("Unknown appender log type: '%s'", value)); } } else if (strncmp(option, "fmt", option_len) == 0) { set.fmt = std::string(value); @@ -631,7 +629,7 @@ static void xbt_log_help_categories_rec(xbt_log_category_t category, const std:: cats.push_back(cat); std::sort(begin(cats), end(cats), - [](xbt_log_category_t a, xbt_log_category_t b) { return strcmp(a->name, b->name) < 0; }); + [](const s_xbt_log_category_t* a, const s_xbt_log_category_t* b) { return strcmp(a->name, b->name) < 0; }); for (auto const& cat : cats) { XBT_HELP("%s%s: %s", this_prefix.c_str(), cat->name, cat->description);