From 17148f2e035c698dbae434f1b871911660945f2b Mon Sep 17 00:00:00 2001 From: yangwei Date: Mon, 15 Jul 2019 11:13:28 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=20#3=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2、fflush频度更新为每4096条日志执行一次 --- src/MESA_handle_logger.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/MESA_handle_logger.c b/src/MESA_handle_logger.c index b12e193..7e7724c 100644 --- a/src/MESA_handle_logger.c +++ b/src/MESA_handle_logger.c @@ -8,14 +8,18 @@ #include #include +#define LOGMSG_MAX_LEN 4096 +#define FLUSH_LOG_NUM 4096 typedef struct log_handle_t { int runtime_log_level; + int flush_log_count; FILE *fp; char runtime_log_file[1200]; + char cur_log_file[LOGMSG_MAX_LEN]; } log_handle_t; -#define LOGMSG_MAX_LEN 4096 + //const int HANDLE_LOGGER_VERSION_20190218 = 1; @@ -201,12 +205,22 @@ void MESA_handle_runtime_log(void *handle, int level, const char *module, const local_time.tm_year + 1900, local_time.tm_mon + 1, local_time.tm_mday); +OPEN_LOG_FILE: if(p_handle->fp == NULL) { if(NULL == (fp = fopen(tmp_log_file_name, "a"))) return; - p_handle->fp = fp; + p_handle->flush_log_count = 0; + memcpy(p_handle->cur_log_file, tmp_log_file_name, strlen(tmp_log_file_name)); } + + if (0 != memcmp(tmp_log_file_name, p_handle->cur_log_file, strlen(tmp_log_file_name))) + { + fclose(p_handle->fp); + p_handle->fp = NULL; + goto OPEN_LOG_FILE; + } + if (0 > fprintf(p_handle->fp, "%s", buf)) { fclose(p_handle->fp); @@ -214,8 +228,14 @@ void MESA_handle_runtime_log(void *handle, int level, const char *module, const } else { - fflush(p_handle->fp); - } + p_handle->flush_log_count+=1; + if (p_handle->flush_log_count >= FLUSH_LOG_NUM) + { + fflush(p_handle->fp); + p_handle->flush_log_count = 0; + } + } + return; }