nuclear@7: #include nuclear@7: #include nuclear@7: #include nuclear@7: #include nuclear@7: #include nuclear@7: #include "logger.h" nuclear@7: nuclear@7: static FILE *logfile; nuclear@7: nuclear@7: int set_log_file(const char *fname) nuclear@7: { nuclear@7: FILE *fp; nuclear@7: nuclear@7: if(!(fp = fopen(fname, "w"))) { nuclear@7: fprintf(stderr, "failed to open logfile: %s: %s\n", fname, strerror(errno)); nuclear@7: return -1; nuclear@7: } nuclear@7: setvbuf(fp, 0, _IONBF, 0); nuclear@7: logfile = fp; nuclear@7: return 0; nuclear@7: } nuclear@7: nuclear@7: void logmsg(const char *fmt, ...) nuclear@7: { nuclear@7: va_list ap; nuclear@7: nuclear@7: if(!logfile) { nuclear@7: logfile = stderr; nuclear@7: } nuclear@7: nuclear@7: va_start(ap, fmt); nuclear@7: vfprintf(logfile, fmt, ap); nuclear@7: va_end(ap); nuclear@7: }