tinywebd

annotate libtinyweb/src/logger.c @ 12:86f703031228

Attribution headers
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 19 Apr 2015 00:01:01 +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 }