summaryrefslogtreecommitdiffstats
path: root/log.c
diff options
context:
space:
mode:
authornicm <nicm>2015-11-24 21:19:46 +0000
committernicm <nicm>2015-11-24 21:19:46 +0000
commit9cccb8c1159b0a4747b5152e2df08e42207b574d (patch)
tree61099cb87d37ada9605022281a705c1ddf73c121 /log.c
parent4ec61bef461aba6d5849bce971a241850b8d7ef6 (diff)
Make the log stuff a bit tidier with some helper functions.
Diffstat (limited to 'log.c')
-rw-r--r--log.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/log.c b/log.c
index 6c7be8b2..46f1673c 100644
--- a/log.c
+++ b/log.c
@@ -22,30 +22,53 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <unistd.h>
#include <vis.h>
#include "tmux.h"
-FILE *log_file;
+static FILE *log_file;
+static int log_level;
-void log_event_cb(int, const char *);
-void log_vwrite(const char *, va_list);
+static void log_event_cb(int, const char *);
+static void log_vwrite(const char *, va_list);
/* Log callback for libevent. */
-void
+static void
log_event_cb(__unused int severity, const char *msg)
{
log_debug("%s", msg);
}
+/* Increment log level. */
+void
+log_add_level(void)
+{
+ log_level++;
+}
+
+/* Get log level. */
+int
+log_get_level(void)
+{
+ return (log_level);
+}
+
/* Open logging to file. */
void
-log_open(const char *path)
+log_open(const char *name)
{
+ char *path;
+
+ if (log_level == 0)
+ return;
+
if (log_file != NULL)
fclose(log_file);
+ xasprintf(&path, "tmux-%s-%ld.log", name, (long)getpid());
log_file = fopen(path, "w");
+ free(path);
if (log_file == NULL)
return;
@@ -65,7 +88,7 @@ log_close(void)
}
/* Write a log message. */
-void
+static void
log_vwrite(const char *msg, va_list ap)
{
char *fmt, *out;