diff --git a/src/bin/e_log.c b/src/bin/e_log.c index 7155f2a44..6e694dba5 100644 --- a/src/bin/e_log.c +++ b/src/bin/e_log.c @@ -2,10 +2,33 @@ EINTERN int e_log_dom = -1; +static const char *_names[] = { + "CRI", + "ERR", + "WRN", + "INF", + "DBG", +}; + +static void +_e_log_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc EINA_UNUSED, int line, const char *fmt, void *data EINA_UNUSED, va_list args) +{ + const char *color; + + color = eina_log_level_color_get(level); + fprintf(stdout, + "%s%s<" EINA_COLOR_RESET "%s%s>" EINA_COLOR_RESET "%s:%d" EINA_COLOR_RESET " ", + color, _names[level > EINA_LOG_LEVEL_DBG ? EINA_LOG_LEVEL_DBG : level], + d->domain_str, color, file, line); + vfprintf(stdout, fmt, args); + putc('\n', stdout); +} + EINTERN int e_log_init(void) { e_log_dom = eina_log_domain_register("e", EINA_COLOR_WHITE); + eina_log_print_cb_set(_e_log_cb, NULL); return e_log_dom != -1; }