From 196710e2d3602832595626aa8ec5973247aaff17 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 25 May 2012 08:28:10 +0000 Subject: Simplify logging and just fprintf(stderr, ...) for early errors. --- log.c | 75 ++++++++++++++++++------------------------------------------------- 1 file changed, 20 insertions(+), 55 deletions(-) (limited to 'log.c') diff --git a/log.c b/log.c index 184f9597..dbae1972 100644 --- a/log.c +++ b/log.c @@ -27,20 +27,14 @@ #include "tmux.h" -/* Logging type. */ -#define LOG_TYPE_OFF 0 -#define LOG_TYPE_TTY 1 -#define LOG_TYPE_FILE 2 -int log_type = LOG_TYPE_OFF; - /* Log file, if needed. */ -FILE *log_file; +FILE *log_file = stderr; /* Debug level. */ -int log_level; +int log_level = 0; void log_event_cb(int, const char *); -void log_vwrite(int, const char *, va_list); +void log_vwrite(const char *, va_list); __dead void log_vfatal(const char *, va_list); /* Log callback for libevent. */ @@ -50,29 +44,13 @@ log_event_cb(unused int severity, const char *msg) log_warnx("%s", msg); } -/* Open logging to tty. */ -void -log_open_tty(int level) -{ - log_type = LOG_TYPE_TTY; - log_level = level; - - setlinebuf(stderr); - setlinebuf(stdout); - event_set_log_callback(log_event_cb); - - tzset(); -} - /* Open logging to file. */ void -log_open_file(int level, const char *path) +log_open(int level, const char *path) { log_file = fopen(path, "w"); if (log_file == NULL) return; - - log_type = LOG_TYPE_FILE; log_level = level; setlinebuf(log_file); @@ -85,37 +63,24 @@ log_open_file(int level, const char *path) void log_close(void) { - if (log_type == LOG_TYPE_FILE) + if (log_file != stderr) fclose(log_file); event_set_log_callback(NULL); - - log_type = LOG_TYPE_OFF; } /* Write a log message. */ void -log_vwrite(int pri, const char *msg, va_list ap) +log_vwrite(const char *msg, va_list ap) { char *fmt; - FILE *f = log_file; - - switch (log_type) { - case LOG_TYPE_TTY: - if (pri == LOG_INFO) - f = stdout; - else - f = stderr; - /* FALLTHROUGH */ - case LOG_TYPE_FILE: - if (asprintf(&fmt, "%s\n", msg) == -1) - exit(1); - if (vfprintf(f, fmt, ap) == -1) - exit(1); - fflush(f); - free(fmt); - break; - } + + if (asprintf(&fmt, "%s\n", msg) == -1) + exit(1); + if (vfprintf(log_file, fmt, ap) == -1) + exit(1); + fflush(log_file); + free(fmt); } /* Log a warning with error string. */ @@ -128,7 +93,7 @@ log_warn(const char *msg, ...) va_start(ap, msg); if (asprintf(&fmt, "%s: %s", msg, strerror(errno)) == -1) exit(1); - log_vwrite(LOG_CRIT, fmt, ap); + log_vwrite(fmt, ap); free(fmt); va_end(ap); } @@ -140,7 +105,7 @@ log_warnx(const char *msg, ...) va_list ap; va_start(ap, msg); - log_vwrite(LOG_CRIT, msg, ap); + log_vwrite(msg, ap); va_end(ap); } @@ -152,7 +117,7 @@ log_info(const char *msg, ...) if (log_level > -1) { va_start(ap, msg); - log_vwrite(LOG_INFO, msg, ap); + log_vwrite(msg, ap); va_end(ap); } } @@ -165,7 +130,7 @@ log_debug(const char *msg, ...) if (log_level > 0) { va_start(ap, msg); - log_vwrite(LOG_DEBUG, msg, ap); + log_vwrite(msg, ap); va_end(ap); } } @@ -178,7 +143,7 @@ log_debug2(const char *msg, ...) if (log_level > 1) { va_start(ap, msg); - log_vwrite(LOG_DEBUG, msg, ap); + log_vwrite(msg, ap); va_end(ap); } } @@ -192,11 +157,11 @@ log_vfatal(const char *msg, va_list ap) if (errno != 0) { if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1) exit(1); - log_vwrite(LOG_CRIT, fmt, ap); + log_vwrite(fmt, ap); } else { if (asprintf(&fmt, "fatal: %s", msg) == -1) exit(1); - log_vwrite(LOG_CRIT, fmt, ap); + log_vwrite(fmt, ap); } free(fmt); -- cgit v1.2.3