5502c2eb759731486a897ef55131ad0bc61e5d8d
[platform/upstream/enlightenment.git] / src / bin / e_log.c
1 #include "e.h"
2
3 E_API int e_log_dom = -1;
4
5 static const char *_names[] = {
6    "CRI",
7    "ERR",
8    "WRN",
9    "INF",
10    "DBG",
11 };
12
13 static void
14 _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)
15 {
16    const char *color;
17
18    color = eina_log_level_color_get(level);
19    fprintf(stdout,
20            "%s%s<" EINA_COLOR_RESET "%s%s>" EINA_COLOR_RESET "%30.30s:%04d" EINA_COLOR_RESET " ",
21            color, _names[level > EINA_LOG_LEVEL_DBG ? EINA_LOG_LEVEL_DBG : level],
22            d->domain_str, color, file, line);
23    vfprintf(stdout, fmt, args);
24    putc('\n', stdout);
25 }
26
27 EINTERN int
28 e_log_init(void)
29 {
30    e_log_dom = eina_log_domain_register("e", EINA_COLOR_WHITE);
31    eina_log_print_cb_set(_e_log_cb, NULL);
32    eina_log_domain_level_set("e", 3);
33    return 1;
34 }
35
36 EINTERN int
37 e_log_shutdown(void)
38 {
39    eina_log_domain_unregister(e_log_dom);
40    e_log_dom = -1;
41    return 0;
42 }
43