Support dlog logging system
[platform/upstream/enlightenment.git] / src / bin / e_log.h
1 #ifdef E_TYPEDEFS
2
3 #else
4 #ifndef E_LOG_H
5 #define E_LOG_H
6
7 #ifdef HAVE_DLOG
8 # include <dlog.h>
9 #  ifdef LOG_TAG
10 #   undef LOG_TAG
11 #  endif
12 # define LOG_TAG "E20"
13 #endif
14
15 #ifdef E_LOGGING
16 #undef DBG
17 #undef INF
18 #undef WRN
19 #undef ERR
20 #undef CRI
21 #define DBG(...)            EINA_LOG_DOM_DBG(e_log_dom, __VA_ARGS__)
22 #define INF(...)            EINA_LOG_DOM_INFO(e_log_dom, __VA_ARGS__)
23 #define WRN(...)            EINA_LOG_DOM_WARN(e_log_dom, __VA_ARGS__)
24 #define ERR(...)            EINA_LOG_DOM_ERR(e_log_dom, __VA_ARGS__)
25 #define CRI(...)            EINA_LOG_DOM_CRIT(e_log_dom, __VA_ARGS__)
26
27 #define ELOG(t, cp, ec)                                    \
28    do                                                      \
29      {                                                     \
30         if ((!cp) && (!ec))                                \
31           INF("EWL|%20.20s|             |             |",  \
32               (t));                                        \
33         else                                               \
34           INF("EWL|%20.20s|cp:0x%08x|ec:0x%08x|",          \
35               (t),                                         \
36               (unsigned int)(cp),                          \
37               (unsigned int)(ec));                         \
38      }                                                     \
39    while (0)
40
41 #define ELOGF(t, f, cp, ec, x...)                          \
42    do                                                      \
43      {                                                     \
44         if ((!cp) && (!ec))                                \
45           INF("EWL|%20.20s|             |             |"f, \
46               (t), ##x);                                   \
47         else                                               \
48           INF("EWL|%20.20s|cp:0x%08x|ec:0x%08x|"f,         \
49               (t),                                         \
50               (unsigned int)(cp),                          \
51               (unsigned int)(ec),                          \
52               ##x);                                        \
53      }                                                     \
54    while (0)
55
56
57 extern E_API int e_log_dom;
58
59 #ifdef HAVE_DLOG
60 EINTERN void e_log_dlog_enable(Eina_Bool enable);
61 #endif
62
63 EINTERN int e_log_init(void);
64 EINTERN int e_log_shutdown(void);
65 #else
66 #undef DBG
67 #undef INF
68 #undef WRN
69 #undef ERR
70 #undef CRI
71 #undef ELOG
72 #undef ELOGF
73 #define DBG(...)            do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
74 #define INF(...)            do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
75 #define WRN(...)            do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
76 #define ERR(...)            do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
77 #define CRI(...)            do { printf(__VA_ARGS__); putc('\n', stdout); } while(0)
78 #define ELOG(...)           ;
79 #define ELOGF(...)          ;
80 #endif
81
82 #endif
83 #endif