summaryrefslogtreecommitdiffstats
path: root/log.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2012-05-30 13:42:57 +0000
committerTiago Cunha <tcunha@gmx.com>2012-05-30 13:42:57 +0000
commit169d36294563fb079e423f421aa4777a7e09df16 (patch)
tree28222dbdbfa30643c4e61315028d21f09aa816fd /log.c
parentc6fc8771a9ebcfe0a10e9cc6889a1c1836369b78 (diff)
Sync OpenBSD patchset 1123:
Simplify logging and just fprintf(stderr, ...) for early errors.
Diffstat (limited to 'log.c')
-rw-r--r--log.c75
1 files changed, 20 insertions, 55 deletions
diff --git a/log.c b/log.c
index 6c149060..34855071 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);