tinywebd
annotate libtinyweb/src/logger.c @ 16:2873d3ec8c78
starting page generator
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 20 Apr 2015 10:17:22 +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 } |