annotate libtinyweb/src/logger.c @ 17:2874f61a43b1
implementing the directory index generation
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Tue, 21 Apr 2015 04:33:02 +0300 |
parents |
0dd50a23f3dd |
children |
|
rev |
line source |
nuclear@12
|
1 /* tinyweb - tiny web server library and daemon
|
nuclear@12
|
2 * Author: John Tsiombikas <nuclear@member.fsf.org>
|
nuclear@12
|
3 *
|
nuclear@12
|
4 * This program is placed in the public domain. Feel free to use it any
|
nuclear@12
|
5 * way you like. Mentions and retaining this attribution header will be
|
nuclear@12
|
6 * appreciated, but not required.
|
nuclear@12
|
7 */
|
nuclear@7
|
8 #include <stdio.h>
|
nuclear@7
|
9 #include <stdlib.h>
|
nuclear@7
|
10 #include <string.h>
|
nuclear@7
|
11 #include <stdarg.h>
|
nuclear@7
|
12 #include <errno.h>
|
nuclear@7
|
13 #include "logger.h"
|
nuclear@7
|
14
|
nuclear@7
|
15 static FILE *logfile;
|
nuclear@7
|
16
|
nuclear@7
|
17 int set_log_file(const char *fname)
|
nuclear@7
|
18 {
|
nuclear@7
|
19 FILE *fp;
|
nuclear@7
|
20
|
nuclear@7
|
21 if(!(fp = fopen(fname, "w"))) {
|
nuclear@7
|
22 fprintf(stderr, "failed to open logfile: %s: %s\n", fname, strerror(errno));
|
nuclear@7
|
23 return -1;
|
nuclear@7
|
24 }
|
nuclear@7
|
25 setvbuf(fp, 0, _IONBF, 0);
|
nuclear@7
|
26 logfile = fp;
|
nuclear@7
|
27 return 0;
|
nuclear@7
|
28 }
|
nuclear@7
|
29
|
nuclear@7
|
30 void logmsg(const char *fmt, ...)
|
nuclear@7
|
31 {
|
nuclear@7
|
32 va_list ap;
|
nuclear@7
|
33
|
nuclear@7
|
34 if(!logfile) {
|
nuclear@7
|
35 logfile = stderr;
|
nuclear@7
|
36 }
|
nuclear@7
|
37
|
nuclear@7
|
38 va_start(ap, fmt);
|
nuclear@7
|
39 vfprintf(logfile, fmt, ap);
|
nuclear@7
|
40 va_end(ap);
|
nuclear@7
|
41 }
|