aboutsummaryrefslogtreecommitdiff
path: root/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'log.c')
-rw-r--r--log.c125
1 files changed, 26 insertions, 99 deletions
diff --git a/log.c b/log.c
index dbf9ee15..066165e8 100644
--- a/log.c
+++ b/log.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $OpenBSD$ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -17,43 +17,36 @@
*/
#include <sys/types.h>
+#include <time.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <syslog.h>
-#include <time.h>
#include "tmux.h"
-/* Log file, if needed. */
-FILE *log_file;
+FILE *log_file;
-/* Debug level. */
-int log_level = 0;
-
-void log_event_cb(int, const char *);
-void log_vwrite(const char *, va_list);
-__dead void log_vfatal(const char *, va_list);
+void log_event_cb(int, const char *);
+void log_vwrite(const char *, va_list);
/* Log callback for libevent. */
void
log_event_cb(unused int severity, const char *msg)
{
- log_warnx("%s", msg);
+ log_debug("%s", msg);
}
/* Open logging to file. */
void
-log_open(int level, const char *path)
+log_open(const char *path)
{
log_file = fopen(path, "w");
if (log_file == NULL)
return;
- log_level = level;
- setlinebuf(log_file);
+ setvbuf(log_file, NULL, _IOLBF, 0);
event_set_log_callback(log_event_cb);
tzset();
@@ -65,6 +58,7 @@ log_close(void)
{
if (log_file != NULL)
fclose(log_file);
+ log_file = NULL;
event_set_log_callback(NULL);
}
@@ -86,24 +80,9 @@ log_vwrite(const char *msg, va_list ap)
free(fmt);
}
-/* Log a warning with error string. */
-void printflike1
-log_warn(const char *msg, ...)
-{
- va_list ap;
- char *fmt;
-
- va_start(ap, msg);
- if (asprintf(&fmt, "%s: %s", msg, strerror(errno)) == -1)
- exit(1);
- log_vwrite(fmt, ap);
- free(fmt);
- va_end(ap);
-}
-
-/* Log a warning. */
-void printflike1
-log_warnx(const char *msg, ...)
+/* Log a debug message. */
+void
+log_debug(const char *msg, ...)
{
va_list ap;
@@ -112,82 +91,30 @@ log_warnx(const char *msg, ...)
va_end(ap);
}
-/* Log an informational message. */
-void printflike1
-log_info(const char *msg, ...)
-{
- va_list ap;
-
- if (log_level > -1) {
- va_start(ap, msg);
- log_vwrite(msg, ap);
- va_end(ap);
- }
-}
-
-/* Log a debug message. */
-void printflike1
-log_debug(const char *msg, ...)
-{
- va_list ap;
-
- if (log_level > 0) {
- va_start(ap, msg);
- log_vwrite(msg, ap);
- va_end(ap);
- }
-}
-
-/* Log a debug message at level 2. */
-void printflike1
-log_debug2(const char *msg, ...)
-{
- va_list ap;
-
- if (log_level > 1) {
- va_start(ap, msg);
- log_vwrite(msg, ap);
- va_end(ap);
- }
-}
-
-/* Log a critical error, with error string if necessary, and die. */
+/* Log a critical error with error string and die. */
__dead void
-log_vfatal(const char *msg, va_list ap)
-{
- char *fmt;
-
- if (errno != 0) {
- if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1)
- exit(1);
- log_vwrite(fmt, ap);
- } else {
- if (asprintf(&fmt, "fatal: %s", msg) == -1)
- exit(1);
- log_vwrite(fmt, ap);
- }
- free(fmt);
-
- exit(1);
-}
-
-/* Log a critical error, with error string, and die. */
-__dead void printflike1
log_fatal(const char *msg, ...)
{
- va_list ap;
+ char *fmt;
+ va_list ap;
va_start(ap, msg);
- log_vfatal(msg, ap);
+ if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1)
+ exit(1);
+ log_vwrite(fmt, ap);
+ exit(1);
}
/* Log a critical error and die. */
-__dead void printflike1
+__dead void
log_fatalx(const char *msg, ...)
{
- va_list ap;
+ char *fmt;
+ va_list ap;
- errno = 0;
va_start(ap, msg);
- log_vfatal(msg, ap);
+ if (asprintf(&fmt, "fatal: %s", msg) == -1)
+ exit(1);
+ log_vwrite(fmt, ap);
+ exit(1);
}