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 #ifndef LOG_H
30 #define LOG_H
31
32 #include "../public/nsapi.h"
33 #include <cx/string.h>
34 #include <cx/utils.h>
35
36 #include <inttypes.h>
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 typedef struct {
43 const char *file;
44 const char *level;
45 int log_stdout;
46 int log_stderr;
47 } LogConfig;
48
49 typedef struct {
50 FILE *file;
51 uint32_t ref;
52 } LogFile;
53
54 typedef struct {
55 cxmutstr file;
56 cxmutstr format;
57 LogFile *log;
58 } AccessLog;
59
60 typedef void (*log_writefunc)(
void *cookie,
char *msg,
size_t length);
61 typedef struct {
62 log_writefunc write;
63 void *cookie;
64 } LogDup;
65
66 int init_logging(
void);
67
68
69 int init_log_file(LogConfig *cfg);
70
71 void log_uninitialized_writeln(
char *str,
size_t len);
72
73 void log_file_writeln(
char *str,
size_t len);
74
75 cxmutstr log_get_prefix(
int level);
76 cxmutstr log_get_prefix_str(
const char *level);
77
78 void log_add_logdup(LogDup *dup);
79 void log_remove_logdup(LogDup *dup);
80
81
82 LogFile* get_access_log_file(cxstring file);
83
84 #ifdef __cplusplus
85 }
86 #endif
87
88 #endif
89
90