From 272ca036e44b99a9855ed415869dc15e3890f86f Mon Sep 17 00:00:00 2001 From: vraatikka Date: Thu, 12 Dec 2013 07:05:38 +0200 Subject: [PATCH] log_manager.h Added macros which allow for testing locally if log is enabled or not. server/Makefile Added directory creation command to Makefile. This fixes problem where errmsg.sys was copied to MaxScale/mysql instead of MaxScale/mysql/errmsg.sys dcb.b Added external variable which carries the information of enabled logs from log_manager.cc gateway.c Tuned logging. --- log_manager/log_manager.h | 12 ++++++++++++ server/Makefile | 1 + server/core/dcb.c | 14 ++++++++++++++ server/core/gateway.c | 6 +++--- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/log_manager/log_manager.h b/log_manager/log_manager.h index a4a767913..b96669fa2 100644 --- a/log_manager/log_manager.h +++ b/log_manager/log_manager.h @@ -35,6 +35,18 @@ typedef enum { typedef enum { FILEWRITER_INIT, FILEWRITER_RUN, FILEWRITER_DONE } filewriter_state_t; +#define LE LOGFILE_ERROR +#define LM LOGFILE_MESSAGE +#define LT LOGFILE_TRACE +#define LD LOGFILE_DEBUG + +#define LOGIF(id,cmd) if (lm_enabled_logfiles_bitmask & id) \ + { \ + cmd; \ + } \ + +#define LOG_IS_ENABLED(id) ((lm_enabled_logfiles_bitmask & id) ? true : false) + /** * UNINIT means zeroed memory buffer allocated for the struct. * INIT means that struct members may have values, and memory may diff --git a/server/Makefile b/server/Makefile index a0357adfe..510c15ec6 100644 --- a/server/Makefile +++ b/server/Makefile @@ -53,6 +53,7 @@ install: @mkdir -p $(DEST)/MaxScale/modules @mkdir -p $(DEST)/MaxScale/log @mkdir -p $(DEST)/MaxScale/etc + @mkdir -p $(DEST)/MaxScale/mysql @mkdir -p $(DEST)/lib @mkdir -p $(DEST)/Documentation install -b MaxScale_template.cnf $(DEST)/MaxScale/etc diff --git a/server/core/dcb.c b/server/core/dcb.c index d78c4994e..2dcee1c00 100644 --- a/server/core/dcb.c +++ b/server/core/dcb.c @@ -68,6 +68,8 @@ #include #include +extern int lm_enabled_logfiles_bitmask; + static DCB *allDCBs = NULL; /* Diagnotics need a list of DCBs */ static DCB *zombies = NULL; static SPINLOCK dcbspin = SPINLOCK_INIT; @@ -678,6 +680,17 @@ dcb_write(DCB *dcb, GWBUF *queue) */ dcb->writeq = gwbuf_append(dcb->writeq, queue); dcb->stats.n_buffered++; +#if 1 + LOGIF(LD, (skygw_log_write( + LOGFILE_DEBUG, + "%lu [dcb_write] Append to writequeue. %d writes " + "buffered for dcb %p in state %s fd %d", + pthread_self(), + dcb->stats.n_buffered, + dcb, + STRDCBSTATE(dcb->state), + dcb->fd))); +#else skygw_log_write( LOGFILE_DEBUG, "%lu [dcb_write] Append to writequeue. %d writes " @@ -687,6 +700,7 @@ dcb_write(DCB *dcb, GWBUF *queue) dcb, STRDCBSTATE(dcb->state), dcb->fd); +#endif } else { diff --git a/server/core/gateway.c b/server/core/gateway.c index 5b777709c..577c3a418 100644 --- a/server/core/gateway.c +++ b/server/core/gateway.c @@ -1241,15 +1241,15 @@ int main(int argc, char **argv) fprintf(stderr, "*\n* Error : MySQL Error should " "be \"Unknown MySQL error\" " - "instead of %s\n* Hint " + "instead of\n* %s\n* Hint " ":\n* Ensure that you have " "MySQL error messages file, errmsg.sys in " - "\n* %s\n* Ensure that Embedded " + "\n* %s/mysql\n* Ensure that Embedded " "Server Library version matches " "exactly with that of the errmsg.sys " "file.\n*\n", mysql_error(NULL), - language_arg); + home_dir); } else {