/* log - a generic logging facility in the spirit of log4j */
-/* Copyright (c) 2004-2015. The SimGrid Team.
+/* Copyright (c) 2004-2017. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
XBT_LOG_CONNECT(s4u_channel);
XBT_LOG_CONNECT(s4u_comm);
XBT_LOG_CONNECT(s4u_file);
+ XBT_LOG_CONNECT(s4u_link);
+ XBT_LOG_CONNECT(s4u_vm);
/* sg */
XBT_LOG_CONNECT(sg_host);
XBT_LOG_CONNECT(simix_host);
XBT_LOG_CONNECT(simix_io);
XBT_LOG_CONNECT(simix_kernel);
+ XBT_LOG_CONNECT(simix_mailbox);
XBT_LOG_CONNECT(simix_network);
XBT_LOG_CONNECT(simix_process);
XBT_LOG_CONNECT(simix_popping);
XBT_LOG_CONNECT(surf_cpu_cas);
XBT_LOG_CONNECT(surf_cpu_ti);
XBT_LOG_CONNECT(surf_energy);
+ XBT_LOG_CONNECT(surf_file);
XBT_LOG_CONNECT(surf_kernel);
XBT_LOG_CONNECT(surf_lagrange);
XBT_LOG_CONNECT(surf_lagrange_dichotomy);
XBT_LOG_CONNECT(ns3);
#endif
XBT_LOG_CONNECT(surf_parse);
+ XBT_LOG_CONNECT(surf_plugin_load);
XBT_LOG_CONNECT(surf_route);
XBT_LOG_CONNECT(surf_routing_generic);
XBT_LOG_CONNECT(surf_route_cluster);
unsigned help_requested = 0; /* 1: logs; 2: categories */
int j = 1;
- /* uncomment to set the LOG category to debug directly */
- // _XBT_LOGV(log).threshold = xbt_log_priority_debug;
-
- xbt_log_connect_categories();
-
/* Set logs and init log submodule */
for (int i = 1; i < *argc; i++) {
if (!strncmp(argv[i], "--log=", strlen("--log="))) {
xbt_assert(ev->priority < sizeof(xbt_log_priority_names), "Priority %d is greater than the biggest allowed value",
ev->priority);
- do {
+ while (1) {
xbt_log_appender_t appender = cat->appender;
- if (!appender)
- continue; /* No appender, try next */
-
- xbt_assert(cat->layout, "No valid layout for the appender of category %s", cat->name);
+ if (appender != NULL) {
+ xbt_assert(cat->layout, "No valid layout for the appender of category %s", cat->name);
- /* First, try with a static buffer */
- if (XBT_LOG_STATIC_BUFFER_SIZE) {
+ /* First, try with a static buffer */
+ int done = 0;
char buff[XBT_LOG_STATIC_BUFFER_SIZE];
- ev->buffer = buff;
+ ev->buffer = buff;
ev->buffer_size = sizeof buff;
va_start(ev->ap, fmt);
- int done = cat->layout->do_layout(cat->layout, ev, fmt);
+ done = cat->layout->do_layout(cat->layout, ev, fmt);
va_end(ev->ap);
if (done) {
appender->do_append(appender, buff);
- continue; /* Ok, that worked: go next */
+ } else {
+
+ /* The static buffer was too small, use a dynamically expanded one */
+ ev->buffer_size = XBT_LOG_DYNAMIC_BUFFER_SIZE;
+ ev->buffer = xbt_malloc(ev->buffer_size);
+ while (1) {
+ va_start(ev->ap, fmt);
+ done = cat->layout->do_layout(cat->layout, ev, fmt);
+ va_end(ev->ap);
+ if (done)
+ break; /* Got it */
+ ev->buffer_size *= 2;
+ ev->buffer = xbt_realloc(ev->buffer, ev->buffer_size);
+ }
+ appender->do_append(appender, ev->buffer);
+ xbt_free(ev->buffer);
}
}
- /* The static buffer was too small, use a dynamically expanded one */
- ev->buffer_size = XBT_LOG_DYNAMIC_BUFFER_SIZE;
- ev->buffer = xbt_malloc(ev->buffer_size);
- while (1) {
- va_start(ev->ap, fmt);
- int done = cat->layout->do_layout(cat->layout, ev, fmt);
- va_end(ev->ap);
- if (done)
- break; /* Got it */
- ev->buffer_size *= 2;
- ev->buffer = xbt_realloc(ev->buffer, ev->buffer_size);
- }
- appender->do_append(appender, ev->buffer);
- xbt_free(ev->buffer);
-
- } while (cat->additivity && (cat = cat->parent, 1));
+ if (!cat->additivity)
+ break;
+ cat = cat->parent;
+ }
}
#undef XBT_LOG_DYNAMIC_BUFFER_SIZE
" -> warning: minor issue encountered\n"
" -> error: issue encountered\n"
" -> critical: major issue encountered\n"
+ " The default priority level is 'info'.\n"
"\n"
- " Format configuration: --log=CATEGORY_NAME.fmt:OPTIONS\n"
- " OPTIONS may be:\n"
+ " Format configuration: --log=CATEGORY_NAME.fmt:FORMAT\n"
+ " FORMAT string may contain:\n"
" -> %%%%: the %% char\n"
" -> %%n: platform-dependent line separator (LOG4J compatible)\n"
" -> %%e: plain old space (SimGrid extension)\n"