/*
Calisto (c) 1998-2000 Peter Howkins, Matthew Howkins, Simon Howkins
$Id: log.c,v 1.5 2000/03/02 21:20:19 peter Exp $
$Log: log.c,v $
Revision 1.5 2000/03/02 21:20:19 peter
Now uses msnprintf()
Revision 1.4 2000/01/11 20:23:50 peter
Added use of STRNCOPY and STRNAPPEND
Added #include "config.h" for autoconf
Revision 1.3 1999/12/16 18:02:12 peter
Added #include of <string.h>
Revision 1.2 1999/12/15 23:27:15 peter
Moved LOGF variables into log.c
Revision 1.1 1999/11/29 22:03:52 peter
Initial revision
*/
static char rcsid[] = "$Id: log.c,v 1.5 2000/03/02 21:20:19 peter Exp $";
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "config.h"
#include "log.h"
#include "msnprintf.h"
#include "strplus.h"
LOGF *usage, *debug, *bug, *idea, *typo;
void log(LOGF *log, const char *format, ...)
{
va_list ptr;
time_t now;
struct tm now2;
char buffer[256];
FILE *f;
/* Prepare formatted time string */
time(&now);
now2 = *localtime(&now);
strftime(buffer, 256, log->dateformat, &now2);
/* Open file and output log info */
f = fopen(log->filename, "a");
if (!f) {
perror("Could not open logfile");
} else {
fprintf(f, "%s ", buffer);
va_start(ptr, format);
vfprintf(f, format, ptr);
va_end(ptr);
fprintf(f, "\n");
fclose(f);
}
/* Output to stdout also */
/* printf("%s ", buffer);
va_start(ptr, format);
vprintf(format, ptr);
va_end(ptr);
printf("\n");*/
}
LOGF *log_init(const char *filename, const char *dateformat)
{
LOGF *log;
log = malloc(sizeof(LOGF));
if (log) {
STRNCOPY(log->filename, filename, sizeof(log->filename));
msnprintf(log->dateformat, sizeof(log->dateformat), "[%s]", dateformat);
}
return log;
}