diff --git a/log_manager/log_manager.cc b/log_manager/log_manager.cc index 331e010d6..85551ecb2 100644 --- a/log_manager/log_manager.cc +++ b/log_manager/log_manager.cc @@ -538,7 +538,7 @@ static int logmanager_write_log( } else { snprintf(wp, str_len, str); } - wp[str_len-2]='\n'; + wp[str_len-1]='\n'; /** lock-free unregistration */ blockbuf_unregister(bb); @@ -836,9 +836,9 @@ int skygw_log_write_flush( len = vsnprintf(NULL, 0, str, valist); va_end(valist); /** - * Add one for line feed and one for '\0'. + * Add one for line feed. */ - len += 2; + len += 1; /** * Write log string to buffer and add to file write list. */ @@ -887,9 +887,9 @@ int skygw_log_write( len = vsnprintf(NULL, 0, str, valist); va_end(valist); /** - * Add one for line feed and one for '\0'. + * Add one for line feed. */ - len += 2; + len += 1; /** * Write log string to buffer and add to file write list. */ diff --git a/log_manager/test/testlog.c b/log_manager/test/testlog.c index 2786265b6..027a71640 100644 --- a/log_manager/test/testlog.c +++ b/log_manager/test/testlog.c @@ -40,6 +40,9 @@ static void* thr_run_morelog(void* data); #define NTHR 256 #define NITER 100 +#define TEST1 +#define TEST2 + int main(int argc, char* argv[]) { int err = 0; @@ -60,6 +63,18 @@ int main(int argc, char* argv[]) r = skygw_logmanager_init(NULL, argc, argv); ss_dassert(r); + + skygw_logmanager_init(NULL, argc, argv); + logstr = ("First write with flush."); + err = skygw_log_write_flush(NULL, LOGFILE_ERROR, logstr); + + logstr = ("Second write, no flush."); + err = skygw_log_write(NULL, LOGFILE_ERROR, logstr); + + logstr = ("Third write, no flush. Next flush only."); + err = skygw_log_write(NULL, LOGFILE_ERROR, logstr); + + err = skygw_log_flush(LOGFILE_ERROR); logstr = "My name is %s %d years and %d months."; err = skygw_log_write(NULL, LOGFILE_TRACE, logstr, "TraceyTracey", 3, 7); @@ -98,6 +113,8 @@ int main(int argc, char* argv[]) err = skygw_log_write(NULL, LOGFILE_MESSAGE, logstr); skygw_logmanager_done(NULL); +#if defined(TEST1) + mes = skygw_message_init(); mtx = simple_mutex_init(NULL, strdup("testmtx")); /** Test starts */ @@ -140,7 +157,8 @@ int main(int argc, char* argv[]) for (i=0; i