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
|
#ifndef __LOGGER_H__
#define __LOGGER_H__
#include "types.h"
#define LOG_DEBUG 0
#define LOG_INFO 1
#define LOG_WARN 2
#define LOG_ERROR 3 /* will be fatal */
#define LOG_FATAL 4 /* followed directly by maybe cleanup and exit */
#define __LOGFUNC__ __logger.func = __func__
#define logd( s, ... ) __LOGFUNC__; logger( LOG_DEBUG, s, ##__VA_ARGS__ );
#define logi( s, ... ) __LOGFUNC__; logger( LOG_INFO, s, ##__VA_ARGS__ );
#define logw( s, ... ) __LOGFUNC__; logger( LOG_WARN, s, ##__VA_ARGS__ );
#define loge( s, ... ) __LOGFUNC__; logger( LOG_ERROR, s, ##__VA_ARGS__ );
#define logf( s, ... ) __LOGFUNC__; logger( LOG_FATAL, s, ##__VA_ARGS__ );
typedef struct {
Size fd;
String func;
} Logger;
extern Logger __logger;
Size logger_init( void );
void logger( Size level, String fmt, ... );
void logger_term( void );
#endif /* __DISPLAY_H__ */
|