/* log - a generic logging facility in the spirit of log4j */
-/* Copyright (c) 2004-2017. The SimGrid Team.
+/* Copyright (c) 2004-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include "xbt/sysdep.h"
#include "xbt/xbt_os_thread.h"
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+
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_mutex_t log_cat_init_mutex = NULL;
log_cat_init_mutex = xbt_os_mutex_init();
}
-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() */
-
- /* xbt */
- XBT_LOG_CONNECT(xbt);
- XBT_LOG_CONNECT(log);
- XBT_LOG_CONNECT(module);
- XBT_LOG_CONNECT(replay);
- XBT_LOG_CONNECT(xbt_cfg);
- XBT_LOG_CONNECT(xbt_dict);
- XBT_LOG_CONNECT(xbt_dict_cursor);
- XBT_LOG_CONNECT(xbt_dict_elm);
- XBT_LOG_CONNECT(xbt_dyn);
- XBT_LOG_CONNECT(xbt_ex);
- XBT_LOG_CONNECT(xbt_automaton);
- XBT_LOG_CONNECT(xbt_backtrace);
- XBT_LOG_CONNECT(xbt_exception);
- XBT_LOG_CONNECT(xbt_graph);
- XBT_LOG_CONNECT(xbt_mallocator);
- XBT_LOG_CONNECT(xbt_memory_map);
- XBT_LOG_CONNECT(xbt_parmap);
- XBT_LOG_CONNECT(xbt_sync);
- XBT_LOG_CONNECT(xbt_sync_os);
-
-#ifdef simgrid_EXPORTS
- /* The following categories are only defined in libsimgrid */
-
- /* bindings */
-#if SIMGRID_HAVE_LUA
- XBT_LOG_CONNECT(lua);
- XBT_LOG_CONNECT(lua_host);
- XBT_LOG_CONNECT(lua_platf);
- XBT_LOG_CONNECT(lua_debug);
-#endif
-
- /* instr */
- XBT_LOG_CONNECT(instr);
- XBT_LOG_CONNECT(instr_api);
- XBT_LOG_CONNECT(instr_config);
- XBT_LOG_CONNECT(instr_msg);
- XBT_LOG_CONNECT(instr_msg_process);
- XBT_LOG_CONNECT(instr_paje_containers);
- XBT_LOG_CONNECT(instr_paje_header);
- XBT_LOG_CONNECT(instr_paje_trace);
- XBT_LOG_CONNECT(instr_paje_types);
- XBT_LOG_CONNECT(instr_paje_values);
- XBT_LOG_CONNECT(instr_resource);
- XBT_LOG_CONNECT(instr_routing);
- XBT_LOG_CONNECT(instr_surf);
-
- /* jedule */
-#if SIMGRID_HAVE_JEDULE
- XBT_LOG_CONNECT(jedule);
- XBT_LOG_CONNECT(jed_sd);
-#endif
-
- /* mc */
-#if SIMGRID_HAVE_MC
- XBT_LOG_CONNECT(mc);
- XBT_LOG_CONNECT(mc_checkpoint);
- XBT_LOG_CONNECT(mc_comm_determinism);
- XBT_LOG_CONNECT(mc_compare);
- XBT_LOG_CONNECT(mc_dwarf);
- XBT_LOG_CONNECT(mc_hash);
- XBT_LOG_CONNECT(mc_liveness);
- XBT_LOG_CONNECT(mc_memory);
- XBT_LOG_CONNECT(mc_page_snapshot);
- XBT_LOG_CONNECT(mc_request);
- XBT_LOG_CONNECT(mc_safety);
- XBT_LOG_CONNECT(mc_VisitedState);
- XBT_LOG_CONNECT(mc_client);
- XBT_LOG_CONNECT(mc_client_api);
- XBT_LOG_CONNECT(mc_comm_pattern);
- XBT_LOG_CONNECT(mc_process);
- XBT_LOG_CONNECT(mc_protocol);
- XBT_LOG_CONNECT(mc_Channel);
- XBT_LOG_CONNECT(mc_ModelChecker);
- XBT_LOG_CONNECT(mc_RegionSnaphot);
- XBT_LOG_CONNECT(mc_Session);
- XBT_LOG_CONNECT(mc_state);
-#endif
- XBT_LOG_CONNECT(mc_global);
- XBT_LOG_CONNECT(mc_config);
- XBT_LOG_CONNECT(mc_record);
-
- /* msg */
- XBT_LOG_CONNECT(msg);
- XBT_LOG_CONNECT(msg_action);
- XBT_LOG_CONNECT(msg_gos);
- XBT_LOG_CONNECT(msg_io);
- XBT_LOG_CONNECT(msg_kernel);
- XBT_LOG_CONNECT(msg_mailbox);
- XBT_LOG_CONNECT(msg_process);
- XBT_LOG_CONNECT(msg_synchro);
- XBT_LOG_CONNECT(msg_task);
- XBT_LOG_CONNECT(msg_vm);
-
- /* s4u */
- XBT_LOG_CONNECT(s4u);
- XBT_LOG_CONNECT(s4u_activity);
- XBT_LOG_CONNECT(s4u_actor);
- XBT_LOG_CONNECT(s4u_netzone);
- 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);
-
- /* simdag */
- XBT_LOG_CONNECT(sd);
- XBT_LOG_CONNECT(sd_daxparse);
-#if HAVE_GRAPHVIZ
- XBT_LOG_CONNECT(sd_dotparse);
-#endif
- XBT_LOG_CONNECT(sd_kernel);
- XBT_LOG_CONNECT(sd_task);
-
- /* simix */
- XBT_LOG_CONNECT(simix);
- XBT_LOG_CONNECT(simix_context);
- XBT_LOG_CONNECT(simix_deployment);
- XBT_LOG_CONNECT(simix_environment);
- 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(simix_synchro);
-
- /* smpi */
- /* SMPI categories are connected in smpi_global.c */
-
- /* surf */
- XBT_LOG_CONNECT(surf);
- XBT_LOG_CONNECT(surf_config);
- XBT_LOG_CONNECT(surf_cpu);
- XBT_LOG_CONNECT(surf_cpu_cas);
- XBT_LOG_CONNECT(surf_cpu_ti);
- XBT_LOG_CONNECT(surf_energy);
- XBT_LOG_CONNECT(surf_kernel);
- XBT_LOG_CONNECT(surf_lagrange);
- XBT_LOG_CONNECT(surf_lagrange_dichotomy);
- XBT_LOG_CONNECT(surf_maxmin);
- XBT_LOG_CONNECT(surf_network);
-#if SIMGRID_HAVE_NS3
- 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);
- XBT_LOG_CONNECT(surf_route_cluster_torus);
- XBT_LOG_CONNECT(surf_route_cluster_dragonfly);
- XBT_LOG_CONNECT(surf_route_dijkstra);
- XBT_LOG_CONNECT(surf_route_fat_tree);
- XBT_LOG_CONNECT(surf_route_floyd);
- XBT_LOG_CONNECT(surf_route_full);
- XBT_LOG_CONNECT(surf_route_none);
- XBT_LOG_CONNECT(surf_route_vivaldi);
- XBT_LOG_CONNECT(surf_storage);
- XBT_LOG_CONNECT(surf_trace);
- XBT_LOG_CONNECT(surf_vm);
- XBT_LOG_CONNECT(surf_host);
-
-#endif /* simgrid_EXPORTS */
-}
-
static void xbt_log_help(void);
static void xbt_log_help_categories(void);
"in 'l'etter)\n"
" -> %%L: line number where the log event was raised (LOG4J compatible)\n"
" -> %%M: function name (LOG4J compatible -- called method name here of course).\n"
- " Defined only when using gcc because there is no __FUNCTION__ elsewhere.\n"
+ " Defined only when using gcc because there is no __func__ elsewhere.\n"
"\n"
" -> %%b: full backtrace (Called %%throwable in LOG4J). Defined only under windows or when using the "
"GNU libc because\n"