2 * Sherlock Library -- Logging
4 * (c) 1997--2001 Martin Mares <mj@ucw.cz>
16 static char *log_progname;
26 vlog(unsigned int cat, const char *msg, va_list args)
28 time_t tim = time(NULL);
29 struct tm *tm = localtime(&tim);
30 char *prog = log_progname ?: "?";
33 strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tm);
34 fprintf(stderr, "%c %s ", cat, buf);
38 fprintf(stderr, "[%s (%d)] ", log_progname, log_pid);
40 fprintf(stderr, "[%s] ", log_progname);
45 fprintf(stderr, "[%d] ", log_pid);
47 vfprintf(stderr, msg, args);
53 log(unsigned int cat, const char *msg, ...)
68 vlog(L_FATAL, msg, args);
88 log_progname = basename(argv0);
96 int fd = open(name, O_WRONLY | O_CREAT | O_APPEND, 0666);
98 die("Unable to open log file %s: %m", name);