summaryrefslogtreecommitdiffstats
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
parent4ec61bef461aba6d5849bce971a241850b8d7ef6 (diff)
Make the log stuff a bit tidier with some helper functions.
-rw-r--r--cmd-show-messages.c1
-rw-r--r--log.c35
-rw-r--r--proc.c2
-rw-r--r--server.c2
-rw-r--r--tmux.c15
-rw-r--r--tmux.h8
6 files changed, 36 insertions, 27 deletions
diff --git a/cmd-show-messages.c b/cmd-show-messages.c
index 92ac5cc2..3d2edf9a 100644
--- a/cmd-show-messages.c
+++ b/cmd-show-messages.c
@@ -61,7 +61,6 @@ cmd_show_messages_server(struct cmd_q *cmdq)
cmdq_print(cmdq, "started %s", tim);
cmdq_print(cmdq, "socket path %s", socket_path);
- cmdq_print(cmdq, "debug level %d", debug_level);
cmdq_print(cmdq, "protocol version %d", PROTOCOL_VERSION);
return (1);
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;
diff --git a/proc.c b/proc.c
index 31fd136b..06340cd9 100644
--- a/proc.c
+++ b/proc.c
@@ -188,7 +188,7 @@ proc_start(const char *name, struct event_base *base, int forkflag,
fatalx("event_reinit failed");
}
- logfile(name);
+ log_open(name);
setproctitle("%s (%s)", name, socket_path);
log_debug("%s started (%ld): socket %s, protocol %d", name,
diff --git a/server.c b/server.c
index e17b9356..e9159422 100644
--- a/server.c
+++ b/server.c
@@ -173,7 +173,7 @@ server_start(struct event_base *base, int lockfd, char *lockfile)
}
close(pair[0]);
- if (debug_level > 3)
+ if (log_get_level() > 3)
tty_create_log();
if (pledge("stdio rpath wpath cpath fattr unix getpw recvfd proc exec "
"tty ps", NULL) != 0)
diff --git a/tmux.c b/tmux.c
index aa827178..f5383fcf 100644
--- a/tmux.c
+++ b/tmux.c
@@ -44,7 +44,6 @@ struct options *global_w_options; /* window options */
struct environ *global_environ;
char *shell_cmd;
-int debug_level;
time_t start_time;
char socket_path[PATH_MAX];
@@ -61,18 +60,6 @@ usage(void)
exit(1);
}
-void
-logfile(const char *name)
-{
- char *path;
-
- if (debug_level > 0) {
- xasprintf(&path, "tmux-%s-%ld.log", name, (long) getpid());
- log_open(path);
- free(path);
- }
-}
-
const char *
getshell(void)
{
@@ -243,7 +230,7 @@ main(int argc, char **argv)
flags |= CLIENT_UTF8;
break;
case 'v':
- debug_level++;
+ log_add_level();
break;
default:
usage();
diff --git a/tmux.h b/tmux.h
index 591fe54e..5f469f92 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1432,10 +1432,8 @@ extern struct options *global_s_options;
extern struct options *global_w_options;
extern struct environ *global_environ;
extern char *shell_cmd;
-extern int debug_level;
extern time_t start_time;
extern char socket_path[PATH_MAX];
-void logfile(const char *);
const char *getshell(void);
int checkshell(const char *);
int areshell(const char *);
@@ -2210,8 +2208,10 @@ char *utf8_padcstr(const char *, u_int);
char *get_proc_name(int, char *);
/* log.c */
-void log_open(const char *);
-void log_close(void);
+void log_add_level(void);
+int log_get_level(void);
+void log_open(const char *);
+void log_close(void);
void printflike(1, 2) log_debug(const char *, ...);
__dead void printflike(1, 2) fatal(const char *, ...);
__dead void printflike(1, 2) fatalx(const char *, ...);