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 <ucx/string.h>
34 #include <ucx/utils.h>
35
36 #include <inttypes.h>
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 typedef struct {
43 char *file;
44 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 sstr_t file;
56 sstr_t 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_log_file(LogConfig *cfg);
67
68 void log_uninitialized_writeln(
char *str,
size_t len);
69
70 void log_file_writeln(
char *str,
size_t len);
71
72 sstr_t log_get_prefix(
int level);
73
74 void log_add_logdup(LogDup *dup);
75 void log_remove_logdup(LogDup *dup);
76
77
78 LogFile* get_access_log_file(
sstr_t file);
79
80 #ifdef __cplusplus
81 }
82 #endif
83
84 #endif
85
86