54 sstr_t file; |
55 sstr_t file; |
55 sstr_t format; // unused |
56 sstr_t format; // unused |
56 LogFile *log; |
57 LogFile *log; |
57 } AccessLog; |
58 } AccessLog; |
58 |
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; |
59 // server logging |
65 // server logging |
60 int init_log_file(LogConfig *cfg); |
66 int init_log_file(LogConfig *cfg); |
61 |
67 |
62 void log_uninitialized_writeln(char *str, size_t len); |
68 void log_uninitialized_writeln(char *str, size_t len); |
63 |
69 |
64 void log_file_writeln(char *str, size_t len); |
70 void log_file_writeln(char *str, size_t len); |
65 |
71 |
66 sstr_t log_get_prefix(int level); |
72 sstr_t log_get_prefix(int level); |
67 |
73 |
|
74 void log_add_logdup(LogDup *dup); |
|
75 void log_remove_logdup(LogDup *dup); |
68 |
76 |
69 // access logging |
77 // access logging |
70 LogFile* get_access_log_file(sstr_t file); |
78 LogFile* get_access_log_file(sstr_t file); |
71 |
79 |
72 #ifdef __cplusplus |
80 #ifdef __cplusplus |