From 2702e73a26fa038cfc98dd62c643ed7563c89227 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Thu, 11 Jan 2018 10:01:42 +0000 Subject: [PATCH 1/4] add a log_context, a string output as part of any log message --- src/common/util.c | 1 + src/common/util.h | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/util.c b/src/common/util.c index 1c72266..b6a279b 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -13,6 +13,7 @@ pthread_key_t cleanup_handler_key; int log_level = 2; +char *log_context = ""; void error_init(void) { diff --git a/src/common/util.h b/src/common/util.h index cb20bca..3f05e78 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -21,6 +21,9 @@ extern int log_level; /* set up the error globals */ void error_init(void); +/* some context for the overall process that appears on each log line */ +extern char *log_context; + void exit_err( const char * ); @@ -92,7 +95,7 @@ uint64_t monotonic_time_ms(void); #define levstr(i) (i==0?'D':(i==1?'I':(i==2?'W':(i==3?'E':'F')))) -#define myloglev(level, msg, ...) mylog( level, "%"PRIu64":%c:%d %p %s:%d: "msg"\n", monotonic_time_ms(), levstr(level), getpid(),pthread_self(), __FILE__, __LINE__, ##__VA_ARGS__ ) +#define myloglev(level, msg, ...) mylog( level, "%"PRIu64":%c:%d %p %s %s:%d: "msg"\n", monotonic_time_ms(), levstr(level), getpid(),pthread_self(), log_context, __FILE__, __LINE__, ##__VA_ARGS__ ) #ifdef DEBUG # define debug(msg, ...) myloglev(0, msg, ##__VA_ARGS__) From 1cb11bfd38ef58e3b0aedce7f665002bc2dd35fc Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Thu, 11 Jan 2018 10:03:16 +0000 Subject: [PATCH 2/4] serve sets the disc's backing file as its log context --- src/server/serve.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/serve.c b/src/server/serve.c index 225e384..d88e9f4 100644 --- a/src/server/serve.c +++ b/src/server/serve.c @@ -78,6 +78,8 @@ struct server * server_create ( NULLCHECK( out->close_signal ); NULLCHECK( out->acl_updated_signal ); + log_context = s_file; + return out; } From fa75de0a8b8312c7ab5e395d627da3595668c818 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Thu, 11 Jan 2018 10:04:18 +0000 Subject: [PATCH 3/4] proxy sets the upstream address and port as its log context --- src/proxy/proxy.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/proxy/proxy.c b/src/proxy/proxy.c index 31e3ff4..bdc1407 100644 --- a/src/proxy/proxy.c +++ b/src/proxy/proxy.c @@ -79,6 +79,9 @@ struct proxier* proxy_create( out->req.buf = xmalloc( NBD_MAX_SIZE ); out->rsp.buf = xmalloc( NBD_MAX_SIZE ); + log_context = xmalloc( strlen(s_upstream_address) + strlen(s_upstream_port) + 2 ); + sprintf(log_context, "%s:%s", s_upstream_address, s_upstream_port); + return out; } From 6d96d751d8cb2aee1eafc63d899a8c2276b7bea6 Mon Sep 17 00:00:00 2001 From: "James F. Carter" Date: Thu, 11 Jan 2018 10:06:03 +0000 Subject: [PATCH 4/4] debian: update changelog --- debian/changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 0403ca2..2e3d4de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ flexnbd (0.1.8) UNRELEASED; urgency=medium * Set TCP keepalive on sockets so broken connections are reaped (#33, !33) + * Add a context to logs to make debugging problems easier (#34, !34) - -- James Carter Wed, 10 Jan 2018 13:57:10 +0000 + -- James Carter Thu, 11 Jan 2018 10:05:35 +0000 flexnbd (0.1.7) stable; urgency=medium