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 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__) 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; } 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; }