From adf5628087829bed2eff635760d7cc456dd1e558 Mon Sep 17 00:00:00 2001 From: nicm Date: Sun, 4 Jun 2017 08:25:57 +0000 Subject: Support SIGUSR2 to stop and start logging for an existing server. Also we currently only have two log levels so just use -v and -vv rather than -v and -vvvv, and clarify the man page entry for -v. --- log.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'log.c') diff --git a/log.c b/log.c index 2e953620..c002663e 100644 --- a/log.c +++ b/log.c @@ -62,12 +62,10 @@ log_open(const char *name) if (log_level == 0) return; - - if (log_file != NULL) - fclose(log_file); + log_close(); xasprintf(&path, "tmux-%s-%ld.log", name, (long)getpid()); - log_file = fopen(path, "w"); + log_file = fopen(path, "a"); free(path); if (log_file == NULL) return; @@ -76,6 +74,21 @@ log_open(const char *name) event_set_log_callback(log_event_cb); } +/* Toggle logging. */ +void +log_toggle(const char *name) +{ + if (log_level == 0) { + log_level = 1; + log_open(name); + log_debug("log opened"); + } else { + log_debug("log closed"); + log_level = 0; + log_close(); + } +} + /* Close logging. */ void log_close(void) -- cgit v1.2.3