Changeset: 6fe755f44157 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6fe755f44157
Modified Files:
gdk/gdk_tracer.c
gdk/gdk_tracer.h
Branch: gdk-tracer
Log Message:
Craeted macros to generate enums && show log level per component
diffs (truncated from 390 to 300 lines):
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -80,7 +80,12 @@ static bool
static bool
_GDKtracer_component_exists(COMPONENT comp)
{
+ if(comp == COMPONENTS_COUNT)
+ return false;
+
(void) comp;
+ /* CHECK */
+ // Add all the cases in loop
return true;
}
@@ -100,6 +105,26 @@ static void
}
+static void
+_GDKtracer_show_log_level_per_component(void)
+{
+ // Find max width from components
+ int max_width = 0;
+ for(int i = 0; i < COMPONENTS_COUNT; i++)
+ {
+ int comp_width = strlen(COMPONENT_STR[i]);
+ if(comp_width > max_width)
+ max_width = comp_width;
+ }
+
+ for(int i = 0; i < COMPONENTS_COUNT; i++)
+ {
+ int space = (int) (max_width - strlen(COMPONENT_STR[i]) + 30);
+ fprintf(stderr, "# %s %*s\n", COMPONENT_STR[i], space,
LEVEL_STR[LOG_LEVELS_LIST[i]]);
+ }
+}
+
+
// Prepares a file in order to write the contents of the buffer
// when necessary. The file name each time is merovingian_{int}.log
static void
@@ -172,6 +197,7 @@ gdk_return
GDKtracer_init(void)
{
_GDKtracer_init_log_level_per_component();
+ _GDKtracer_show_log_level_per_component();
_GDKtracer_create_file();
return GDK_SUCCEED;
}
diff --git a/gdk/gdk_tracer.h b/gdk/gdk_tracer.h
--- a/gdk/gdk_tracer.h
+++ b/gdk/gdk_tracer.h
@@ -20,138 +20,153 @@
#define NAME_SEP '_'
#define NEW_LINE '\n'
-// Print the enum as a string
-#define STR(x) #x
-#define ENUM_STR(x) STR(x)
-
// Print only the filename without the path
#define __FILENAME__ (__builtin_strrchr(__FILE__, '/') ?
__builtin_strrchr(__FILE__, '/') + 1 : __FILE__)
-/* CHECK */
-// Sort it per layer
-// COMPONENTS
-typedef enum {
+// Print the enum as a string
+#define STR(x) #x
+#define AS_STR(x) STR(x)
- // M_ALL,
+#define GENERATE_ENUM(ENUM) ENUM,
+#define GENERATE_STRING(STRING) #STRING,
- // Specific
- ALLOC,
- PAR,
- ALGO,
+
- // Modules
- GEOM,
- LIDAR,
- BAM,
- FITS,
- SHP,
+// ADAPTERS
+#define FOREACH_ADPTR(ADPTR) \
+ ADPTR(BASIC) \
+ ADPTR(PROFILER) \
- // SQL_ALL,
- SQL_ATOM_TR,
- SQL_STATISTICS,
- SQL_ORDERIDX,
- SQL_OPTIMIZER,
- SQL_WLR,
- SQL_USER,
- SQL_SCENARIO,
- SQL_CACHE_TR,
- SQL_SYMBOL,
- SQL_MVC,
- SQL_STORE,
- SQL_UPGRADES,
- SQL_RELATION,
- SQL_RESULT,
- SQL_STATEMENT,
- SQL_BAT,
+typedef enum {
+ FOREACH_ADPTR(GENERATE_ENUM)
+} ADAPTER;
- // MAL_ALL,
- MAL_MEMO,
- MAL_SESSION,
- MAL_INTERPRETER,
- MAL_SCHEDULER,
- MAL_LISTING,
- MAL_FACTORY,
- MAL_PARSER,
- MAL_WLC,
- MAL_REDUCE,
- MAL_CLIENT,
- MAL_OIDX,
- MAL_REMOTE,
- MAL_INET,
- MAL_GROUPBY,
- MAL_TABLET,
- MAL_OLTP,
- MAL_MANIFOLD,
- MAL_RESOLVE,
- MAL_FCN,
- MAL_DATAFLOW,
- MAL_MODULE,
- MAL_SERVER,
- MAL_EXCEPTION,
- MAL_NAMESPACE,
- MAL_PROFILER,
- MAL_MAL,
- MAL_DEBUGGER,
- MAL_OPT_ALIASES,
- MAL_OPT_CANDIDATES,
- MAL_OPT_COERCION,
- MAL_OPT_COMMONTERMS,
- MAL_OPT_PIPES,
- MAL_OPT_REMAP,
- MAL_OPT_DATAFLOW,
- MAL_OPT_EVALUATE,
- MAL_OPT_INLINE,
- MAL_OPT_JIT,
- MAL_OPT_MULTIPLEX,
- MAL_OPT_REORDER,
- MAL_OPT_PROJECTIONPATH,
- MAL_OPT_WLC,
- MAL_OPT_CONSTANTS,
- MAL_OPT_COSTMODEL,
- MAL_OPT_DEADCODE,
- MAL_OPT_EMPTYBIND,
- MAL_OPT_GENERATOR,
- MAL_OPT_JSON,
- MAL_OPT_MATPACK,
- MAL_OPT_GC,
- MAL_OPT_MERGETABLE,
- MAL_OPT_MITOSIS,
- MAL_OPT_PUSHSELECT,
- MAL_OPT_QUERYLOG,
- MAL_OPT_OLTP,
- MAL_OPT_PROFILER,
- MAL_OPT_REDUCE,
- MAL_OPT_REMOTE,
- MAL_OPT_VOLCANO,
- MAL_OPT_MACRO,
- MAL_OPT_POSTFIX,
-
- // GDK_ALL,
- GDK_LOGGER,
+static const char *ADAPTER_STR[] = {
+ FOREACH_ADPTR(GENERATE_STRING)
+};
+
+
- COMPONENTS_COUNT // Do not remove - it is used in order to find
quickly
- // the size of the COMPONENT array
- } COMPONENT;
-
// LOG LEVELS
-typedef enum {
+#define FOREACH_LEVEL(LEVEL) \
+ LEVEL(M_CRITICAL) \
+ LEVEL(M_ERROR) \
+ LEVEL(M_WARNING) \
+ LEVEL(M_INFO) \
+ LEVEL(M_DEBUG) \
- M_CRITICAL,
- M_ERROR,
- M_WARNING,
- M_INFO,
- M_DEBUG,
+typedef enum {
+ FOREACH_LEVEL(GENERATE_ENUM)
+} LOG_LEVEL;
- } LOG_LEVEL;
+static const char *LEVEL_STR[] = {
+ FOREACH_LEVEL(GENERATE_STRING)
+};
+
-// GDKtracer adapters
-typedef enum {
+// COMPONENTS
+#define FOREACH_COMP(COMP) \
+ COMP( ALLOC ) \
+ COMP( PAR ) \
+ COMP( ALGO ) \
+ COMP( GEOM ) \
+ COMP( LIDAR ) \
+ COMP( BAM ) \
+ COMP( FITS ) \
+ COMP( SHP ) \
+ \
+ COMP( SQL_ATOM_TR ) \
+ COMP( SQL_STATISTICS ) \
+ COMP( SQL_ORDERIDX ) \
+ COMP( SQL_OPTIMIZER ) \
+ COMP( SQL_WLR ) \
+ COMP( SQL_USER ) \
+ COMP( SQL_SCENARIO ) \
+ COMP( SQL_CACHE_TR ) \
+ COMP( SQL_SYMBOL ) \
+ COMP( SQL_MVC ) \
+ COMP( SQL_STORE ) \
+ COMP( SQL_UPGRADES ) \
+ COMP( SQL_RELATION ) \
+ COMP( SQL_RESULT ) \
+ COMP( SQL_STATEMENT ) \
+ COMP( SQL_BAT ) \
+ \
+ COMP( MAL_MEMO ) \
+ COMP( MAL_SESSION ) \
+ COMP( MAL_INTERPRETER ) \
+ COMP( MAL_SCHEDULER ) \
+ COMP( MAL_LISTING ) \
+ COMP( MAL_FACTORY ) \
+ COMP( MAL_PARSER ) \
+ COMP( MAL_WLC ) \
+ COMP( MAL_REDUCE ) \
+ COMP( MAL_CLIENT ) \
+ COMP( MAL_OIDX ) \
+ COMP( MAL_REMOTE ) \
+ COMP( MAL_INET ) \
+ COMP( MAL_GROUPBY ) \
+ COMP( MAL_TABLET ) \
+ COMP( MAL_OLTP ) \
+ COMP( MAL_MANIFOLD ) \
+ COMP( MAL_RESOLVE ) \
+ COMP( MAL_FCN ) \
+ COMP( MAL_DATAFLOW ) \
+ COMP( MAL_MODULE ) \
+ COMP( MAL_SERVER ) \
+ COMP( MAL_EXCEPTION ) \
+ COMP( MAL_NAMESPACE ) \
+ COMP( MAL_PROFILER ) \
+ COMP( MAL_MAL ) \
+ COMP( MAL_DEBUGGER ) \
+ \
+ COMP( MAL_OPT_ALIASES ) \
+ COMP( MAL_OPT_CANDIDATES ) \
+ COMP( MAL_OPT_COERCION ) \
+ COMP( MAL_OPT_COMMONTERMS ) \
+ COMP( MAL_OPT_PIPES ) \
+ COMP( MAL_OPT_REMAP ) \
+ COMP( MAL_OPT_DATAFLOW ) \
+ COMP( MAL_OPT_EVALUATE ) \
+ COMP( MAL_OPT_INLINE ) \
+ COMP( MAL_OPT_JIT ) \
+ COMP( MAL_OPT_MULTIPLEX ) \
+ COMP( MAL_OPT_REORDER ) \
+ COMP( MAL_OPT_PROJECTIONPATH )\
+ COMP( MAL_OPT_WLC ) \
+ COMP( MAL_OPT_CONSTANTS ) \
+ COMP( MAL_OPT_COSTMODEL ) \
+ COMP( MAL_OPT_DEADCODE ) \
+ COMP( MAL_OPT_EMPTYBIND ) \
+ COMP( MAL_OPT_GENERATOR ) \
+ COMP( MAL_OPT_JSON ) \
+ COMP( MAL_OPT_MATPACK ) \
+ COMP( MAL_OPT_GC ) \
+ COMP( MAL_OPT_MERGETABLE ) \
+ COMP( MAL_OPT_MITOSIS ) \
+ COMP( MAL_OPT_PUSHSELECT ) \
+ COMP( MAL_OPT_QUERYLOG ) \
+ COMP( MAL_OPT_OLTP ) \
+ COMP( MAL_OPT_PROFILER ) \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list