+static FILE *logfile;
+
+static void closelog(void)
+{
+ fclose(logfile);
+}
+
+static void logmsg(const char *tag, const char *fmt, va_list ap)
+{
+ if(!logfile) {
+ if(!(logfile = fopen("oftp.log", "w"))) {
+ return;
+ }
+ setvbuf(logfile, 0, _IOLBF, 0);
+ atexit(closelog);
+ }
+ fprintf(logfile, "%s: ", tag);
+ vfprintf(logfile, fmt, ap);
+}
+