forked from Spritetm/libesphttpd
-
Notifications
You must be signed in to change notification settings - Fork 2
/
logging.h
executable file
·203 lines (177 loc) · 3.55 KB
/
logging.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#ifndef HTTPD_LOGGING_H
#define HTTPD_LOGGING_H
#include <esp8266.h>
#include "uptime.h"
#ifndef VERBOSE_LOGGING
#define VERBOSE_LOGGING 1
#endif
#ifndef LOG_EOL
#define LOG_EOL "\n"
#endif
/**
* Print a startup banner message (printf syntax)
* Uses bright green color
*/
#define banner(fmt, ...) \
do { \
printf(LOG_EOL "\x1b[32;1m[i] " fmt "\x1b[0m" LOG_EOL, ##__VA_ARGS__); \
} while(0)
/**
* Same as 'info()', but enabled even if verbose logging is disabled.
* This can be used to print version etc under the banner.
*/
#define banner_info(fmt, ...) \
do { \
printf("\x1b[32m[i] " fmt "\x1b[0m"LOG_EOL, ##__VA_ARGS__); \
} while(0)
/**
* Empty line in the headers
*/
#define banner_gap() \
do { \
printf(LOG_EOL); \
} while(0)
#if VERBOSE_LOGGING
/**
* Print a debug log message (printf format)
*/
#define dbg(fmt, ...) \
do { \
uptime_print(); \
printf(" [ ] " fmt LOG_EOL, ##__VA_ARGS__); \
} while(0)
/**
* Print a info log message (printf format)
* Uses bright green color
*/
#define info(fmt, ...) \
do { \
printf("\x1b[32m"); \
uptime_print(); \
printf(" [i] " fmt "\x1b[0m"LOG_EOL, ##__VA_ARGS__); \
} while(0)
#else
#define dbg(fmt, ...)
#define info(fmt, ...)
#endif
/**
* Print a error log message (printf format)
* Uses bright red color
*/
#define error(fmt, ...) \
do { \
printf("\x1b[31;1m"); \
uptime_print(); \
printf(" [E] " fmt "\x1b[0m"LOG_EOL, ##__VA_ARGS__); \
} while(0)
/**
* Print a warning log message (printf format)
* Uses bright yellow color
*/
#define warn(fmt, ...) \
do { \
printf("\x1b[33;1m"); \
uptime_print(); \
printf(" [W] " fmt "\x1b[0m"LOG_EOL, ##__VA_ARGS__); \
} while(0)
// --------------- logging categories --------------------
#ifndef DEBUG_ROUTER
#define DEBUG_ROUTER 1
#endif
#ifndef DEBUG_ESPFS
#define DEBUG_ESPFS 1
#endif
#ifndef DEBUG_WS
#define DEBUG_WS 1
#endif
#ifndef DEBUG_HTTP
#define DEBUG_HTTP 1
#endif
#ifndef DEBUG_HTTPC
#define DEBUG_HTTPC 1
#endif
#ifndef DEBUG_CAPTDNS
#define DEBUG_CAPTDNS 1
#endif
#ifndef DEBUG_MALLOC
#define DEBUG_MALLOC 0
#endif
// router (resolving urls to serve)
#if DEBUG_ROUTER
#define router_warn warn
#define router_dbg dbg
#define router_error error
#define router_info info
#else
#define router_dbg(...)
#define router_warn(...)
#define router_error(...)
#define router_info(...)
#endif
// filesystem
#if DEBUG_ESPFS
#define espfs_warn warn
#define espfs_dbg dbg
#define espfs_error error
#define espfs_info info
#else
#define espfs_dbg(...)
#define espfs_warn(...)
#define espfs_error(...)
#define espfs_info(...)
#endif
// websocket
#if DEBUG_WS
#define ws_warn warn
#define ws_dbg dbg
#define ws_error error
#define ws_info info
#else
#define ws_dbg(...)
#define ws_warn(...)
#define ws_error(...)
#define ws_info(...)
#endif
// server
#if DEBUG_HTTP
#define http_warn warn
#define http_dbg dbg
#define http_error error
#define http_info info
#else
#define http_dbg(...)
#define http_warn(...)
#define http_error(...)
#define http_info(...)
#endif
// client
#if DEBUG_HTTPC
#define httpc_warn warn
#define httpc_dbg dbg
#define httpc_error error
#define httpc_info info
#else
#define httpc_dbg(...)
#define httpc_warn(...)
#define httpc_error(...)
#define httpc_info(...)
#endif
// captive portal
#if DEBUG_CAPTDNS
#define cdns_warn warn
#define cdns_dbg dbg
#define cdns_error error
#define cdns_info info
#else
#define cdns_dbg(...)
#define cdns_warn(...)
#define cdns_error(...)
#define cdns_info(...)
#endif
// all malloc usage
#if DEBUG_MALLOC
#define mem_dbg dbg
#else
#define mem_dbg(...)
#endif
#endif // HTTPD_LOGGING_H