103 error(errno,
"Couldn't re-open access logfile `%s'.",
filename);
129 void alog_open(
char *fname,
int use_localtm,
int use_markers)
137 warning(0,
"Opening an already opened access log");
140 if (strlen(fname) > FILENAME_MAX) {
141 error(0,
"Access Log filename too long: `%s', cannot open.", fname);
148 f = fopen(fname,
"a");
150 error(errno,
"Couldn't open logfile `%s'.", fname);
173 #define FORMAT_SIZE (10*1024) 174 static void format(
char *buf,
const char *fmt)
178 char *p, prefix[1024];
189 sprintf(p,
"%04d-%02d-%02d %02d:%02d:%02d ",
190 tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
191 tm.tm_hour, tm.tm_min, tm.tm_sec);
196 if (strlen(prefix) + strlen(fmt) >
FORMAT_SIZE / 2) {
197 sprintf(buf,
"%s <OUTPUT message too long>\n", prefix);
200 sprintf(buf,
"%s%s\n", prefix, fmt);
206 void alog(
const char *fmt, ...)
221 vfprintf(
file, buf, args);
void error(int err, const char *fmt,...)
void info(int err, const char *fmt,...)
struct tm gw_gmtime(time_t t)
static char filename[FILENAME_MAX+1]
static void format(char *buf, const char *fmt)
void gwlist_unlock(List *list)
void alog_use_gmtime(void)
void gwlist_remove_producer(List *list)
void alog_use_localtime(void)
void warning(int err, const char *fmt,...)
void alog_open(char *fname, int use_localtm, int use_markers)
void gwlist_lock(List *list)
void * gwlist_consume(List *list)
void alog(const char *fmt,...)
struct tm gw_localtime(time_t t)
void gwlist_add_producer(List *list)
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)