diff --git a/include/trace.h b/include/trace.h index d511c9a..676f30c 100644 --- a/include/trace.h +++ b/include/trace.h @@ -31,5 +31,7 @@ int trace_init(); const char* trace_name_of(enum trace_level lv); extern const char* const _TRACE_CONTROL_ENV_NAME; +extern const char* const _trace_level_descriptions[_TRACE_LEVEL_NUM]; + #endif /* _TRACE_H */ diff --git a/src/main.c b/src/main.c index 151dee7..0e1682a 100644 --- a/src/main.c +++ b/src/main.c @@ -23,7 +23,10 @@ static void pi_print_trace_infos(FILE* out) enum trace_level lv = (enum trace_level)i; name = trace_name_of(lv); if(name) { - fprintf(out, "-> level %d: \"%s\"\n", i, name); + debug_assert(AS(lv, int) < AS(_TRACE_LEVEL_NUM, int) && AS(lv, int) >= 0); + const char* desc = lv[_trace_level_descriptions]; + assert(desc); + fprintf(out, "-> level %d: \"%s\" - %s\n", i, name, desc); } } enum trace_level def = _TRACE_LEVEL_DEFAULT; diff --git a/src/trace.c b/src/trace.c index 1ccf60d..03d2d7a 100644 --- a/src/trace.c +++ b/src/trace.c @@ -27,6 +27,14 @@ const struct {const char* const name; const enum trace_level level; } _trace_lev }; #define _trace_level_names_n (sizeof(_trace_level_names) / sizeof(_trace_level_names[0])) +const char* const _trace_level_descriptions[_TRACE_LEVEL_NUM] = { + "All trace messages regarding internals, only useful for debugging", + "Information messages regarding processes, recommended level", + "Only show warnings", + "Only show errors", + "Only show fatal (aborting) errors", +}; + static bool _trace_lookup(const char*pIN name, enum trace_level *pOUT olevel) {