25 |
|
#include "stdinc.h" |
26 |
|
|
27 |
|
#include "log.h" |
28 |
– |
#include "fileio.h" |
28 |
|
#include "irc_string.h" |
29 |
|
#include "ircd.h" |
30 |
|
#include "conf.h" |
35 |
|
static struct { |
36 |
|
char path[PATH_MAX + 1]; |
37 |
|
size_t size; |
38 |
< |
FBFILE *file; |
38 |
> |
FILE *file; |
39 |
|
} log_type_table[LOG_TYPE_LAST]; |
40 |
|
|
41 |
|
|
43 |
|
log_add_file(enum log_type type, size_t size, const char *path) |
44 |
|
{ |
45 |
|
if (log_type_table[type].file) |
46 |
< |
fbclose(log_type_table[type].file); |
46 |
> |
fclose(log_type_table[type].file); |
47 |
|
|
48 |
|
strlcpy(log_type_table[type].path, path, sizeof(log_type_table[type].path)); |
49 |
|
log_type_table[type].size = size; |
50 |
|
|
51 |
< |
return (log_type_table[type].file = fbopen(path, "a")) != NULL; |
51 |
> |
return (log_type_table[type].file = fopen(path, "a")) != NULL; |
52 |
|
} |
53 |
|
|
54 |
|
void |
61 |
|
if (log_type_table[type].file == NULL) |
62 |
|
continue; |
63 |
|
|
64 |
< |
fbclose(log_type_table[type].file); |
64 |
> |
fclose(log_type_table[type].file); |
65 |
|
log_type_table[type].file = NULL; |
66 |
|
} |
67 |
|
} |
89 |
|
struct tm *lt = localtime(&CurrentTime); |
90 |
|
|
91 |
|
nbytes = strftime(buf, sizeof(buf), "[%FT%H:%M:%S%z] ", lt); |
92 |
< |
nbytes += snprintf(buf+nbytes, sizeof(buf)-nbytes, "%s\n", message); |
92 |
> |
snprintf(buf+nbytes, sizeof(buf)-nbytes, "%s\n", message); |
93 |
|
|
94 |
< |
fbputs(buf, log_type_table[type].file, nbytes); |
94 |
> |
fputs(buf, log_type_table[type].file); |
95 |
> |
fflush(log_type_table[type].file); |
96 |
|
} |
97 |
< |
|
97 |
> |
|
98 |
|
void |
99 |
|
ilog(enum log_type type, const char *fmt, ...) |
100 |
|
{ |
118 |
|
snprintf(buf, sizeof(buf), "Rotating logfile %s", |
119 |
|
log_type_table[type].path); |
120 |
|
write_log(type, buf); |
121 |
< |
fbclose(log_type_table[type].file); |
121 |
> |
fclose(log_type_table[type].file); |
122 |
|
log_type_table[type].file = NULL; |
123 |
|
|
124 |
|
snprintf(buf, sizeof(buf), "%s.old", log_type_table[type].path); |