summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author杨威 <[email protected]>2019-07-15 11:15:00 +0800
committer杨威 <[email protected]>2019-07-15 11:15:00 +0800
commiteae1ebe9e9fcd749bd04c614311d19348d0f8b21 (patch)
tree3b0353316cfafc33ddc2bdb8f55a60df6743e92b
parentf17652613e3b58f7ffe250091730288495ee73e1 (diff)
parent17148f2e035c698dbae434f1b871911660945f2b (diff)
Merge branch 'Hotfix-issue-3' into 'master'
1、修复 #3 问题 See merge request MESA_framework/MESA_handle_logger!5
-rw-r--r--src/MESA_handle_logger.c28
1 files 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 <unistd.h>
#include<sys/stat.h>
+#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;
}