55 lines
1.0 KiB
C
55 lines
1.0 KiB
C
|
/*
|
|||
|
* printlog
|
|||
|
* architecture clients/serveur guinness
|
|||
|
* Thomas Nemeth / Arnaud Giersch -- le 23 ao<EFBFBD>t 2001
|
|||
|
*
|
|||
|
*/
|
|||
|
|
|||
|
#include <stdio.h>
|
|||
|
#include <time.h>
|
|||
|
#ifdef SunOS
|
|||
|
#include <sys/varargs.h>
|
|||
|
#else
|
|||
|
#include <stdarg.h>
|
|||
|
#endif
|
|||
|
#include <string.h>
|
|||
|
#include "defines.h"
|
|||
|
#include "printlog.h"
|
|||
|
|
|||
|
|
|||
|
extern FILE *outerr;
|
|||
|
extern FILE *logfile;
|
|||
|
|
|||
|
|
|||
|
void printlog (log_level loglevel, const char *format, ...) {
|
|||
|
va_list ap;
|
|||
|
FILE *stream = logfile;
|
|||
|
time_t now;
|
|||
|
struct tm *today;
|
|||
|
char date_time[MAXSTRLEN];
|
|||
|
|
|||
|
va_start (ap, format);
|
|||
|
|
|||
|
switch (loglevel) {
|
|||
|
case LOG_NOTIFY:
|
|||
|
stream = logfile;
|
|||
|
break;
|
|||
|
case LOG_ERROR:
|
|||
|
stream = outerr;
|
|||
|
break;
|
|||
|
default:
|
|||
|
stream = outerr;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
time (&now);
|
|||
|
today = localtime (&now);
|
|||
|
memset (date_time, 0, MAXSTRLEN);
|
|||
|
strftime (date_time, MAXSTRLEN - 1, "%a %d %b %Y %T", today);
|
|||
|
fprintf (stream, "guinnessd: %s - ", date_time);
|
|||
|
vfprintf (stream, format, ap);
|
|||
|
|
|||
|
va_end (ap);
|
|||
|
}
|
|||
|
|