X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c6e251509d3babdd3ab71eb043baf9ae8b8bee0a..68c4f3d5e544c5fe8e2a67a5607d7a268a0e59a1:/src/xbt/xbt_log_layout_format.cpp diff --git a/src/xbt/xbt_log_layout_format.cpp b/src/xbt/xbt_log_layout_format.cpp index 872c4c56fa..2cf7a320f3 100644 --- a/src/xbt/xbt_log_layout_format.cpp +++ b/src/xbt/xbt_log_layout_format.cpp @@ -1,6 +1,6 @@ /* layout_simple - a dumb log layout */ -/* Copyright (c) 2007-2020. The SimGrid Team. */ +/* Copyright (c) 2007-2021. The SimGrid Team. */ /* 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. */ @@ -9,6 +9,7 @@ #include "simgrid/host.h" #include "src/xbt/log_private.hpp" #include "xbt/sysdep.h" +#include "xbt/virtu.h" #include #include @@ -18,7 +19,7 @@ static constexpr const char* ERRMSG = " what: %%m: user message %%c: log category %%p: log priority\n" " where:\n" " source: %%F: file %%L: line %%M: function %%l: location (%%F:%%L)\n" - " runtime: %%h: hostname %%t: thread %%P: process %%i: PID\n" + " runtime: %%h: hostname %%a: actor %%i: PID\n" " when: %%d: date %%r: app. age\n" " other: %%%%: %% %%n: new line %%e: plain space\n"; @@ -87,6 +88,8 @@ static bool xbt_log_layout_format_doit(const s_xbt_log_layout_t* l, xbt_log_even // *q == '%' q++; do { + int sz; + int len; switch (*q) { case '\0': fprintf(stderr, "Layout format (%s) ending with %%\n", (char*)l->data); @@ -129,22 +132,21 @@ static bool xbt_log_layout_format_doit(const s_xbt_log_layout_t* l, xbt_log_even show_string(sg_host_self_get_name()); break; case 't': /* thread/process name; LOG4J compliant */ - case 'P': /* process name; SimGrid extension */ + case 'P': /* Used before SimGrid 3.26 and kept for compatiblity. Should not hurt. */ + case 'a': /* actor name; SimGrid extension */ show_string(xbt_procname()); break; - case 'i': /* process PID name; SimGrid extension */ + case 'i': /* actor ID; SimGrid extension */ show_int(xbt_getpid()); break; case 'F': /* file name; LOG4J compliant */ show_string(ev->fileName); break; - case 'l': { /* location; LOG4J compliant */ - int sz; + case 'l': /* location; LOG4J compliant */ set_sz_from_precision(); - int len = snprintf(p, sz, "%s:%d", ev->fileName, ev->lineNum); + len = snprintf(p, sz, "%s:%d", ev->fileName, ev->lineNum); check_overflow(std::min(sz, len)); break; - } case 'L': /* line number; LOG4J compliant */ show_int(ev->lineNum); break; @@ -155,16 +157,14 @@ static bool xbt_log_layout_format_doit(const s_xbt_log_layout_t* l, xbt_log_even case 'r': /* application age; LOG4J compliant */ show_double(simgrid_get_clock()); break; - case 'm': { /* user-provided message; LOG4J compliant */ - int sz; + case 'm': /* user-provided message; LOG4J compliant */ set_sz_from_precision(); va_list ap; va_copy(ap, ev->ap); - int len = vsnprintf(p, sz, msg_fmt, ap); + len = vsnprintf(p, sz, msg_fmt, ap); va_end(ap); check_overflow(std::min(sz, len)); break; - } default: fprintf(stderr, ERRMSG, *q, (char*)l->data); xbt_abort(); @@ -185,10 +185,10 @@ static void xbt_log_layout_format_free(const s_xbt_log_layout_t* lay) xbt_log_layout_t xbt_log_layout_format_new(const char* arg) { - xbt_log_layout_t res = xbt_new0(s_xbt_log_layout_t, 1); - res->do_layout = &xbt_log_layout_format_doit; - res->free_ = &xbt_log_layout_format_free; - res->data = xbt_strdup(arg); + auto* res = xbt_new0(s_xbt_log_layout_t, 1); + res->do_layout = &xbt_log_layout_format_doit; + res->free_ = &xbt_log_layout_format_free; + res->data = xbt_strdup(arg); return res; }