Browse Source

Z991239-5349 #comment fea: make log time more accurate

chenliangyu 1 năm trước cách đây
mục cha
commit
c71b6b1cfe

+ 2 - 2
Framework/RvcLogSdk/log_builder.c

@@ -199,7 +199,7 @@ int add_beidou_log(log_group_builder* bder, beidou_log_item* log) {
 }
 
 
-int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log)
+int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time)
 {
     cJSON* skyeye_content;
     cJSON* united_content;
@@ -222,7 +222,7 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
     aos_debug_log((LB, "add_log 1"));
     GetLocalIP(local_ip_str);
     aos_debug_log((LB, "add_log 2"));
-    now = time(NULL);
+    now = record_time;
     aos_debug_log((LB, "add_log 3"));
     GetTimeStr(now, nowTime);
     aos_debug_log((LB, "add_log 4"));

+ 1 - 1
Framework/RvcLogSdk/log_builder.h

@@ -79,7 +79,7 @@ typedef struct _serialize_buf {
 extern log_group_builder* log_group_create(log_producer_config* config);
 extern log_group_builder* log_group_clone(log_group_builder* bder);
 extern void log_group_destroy(log_group_builder* bder);
-extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log);
+extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time);
 extern int add_beidou_log(log_group_builder* bder, beidou_log_item* log);
 extern int add_log_raw(log_group_builder* bder, build_item* log);
 extern int add_log_serialize_buf(log_group_builder* bder, serialize_buf* buffer);

+ 2 - 2
Framework/RvcLogSdk/log_producer_client.c

@@ -126,7 +126,7 @@ void destroy_log_producer_client(log_producer_client* client)
 }
 
 log_producer_result log_producer_client_add_log(log_producer_client* client,
-    log_item* log, int flush)
+    log_item* log, int flush, long record_time)
 {
     int rst;
     int i = 0, j = 0;
@@ -145,7 +145,7 @@ log_producer_result log_producer_client_add_log(log_producer_client* client,
     CS_LEAVE(manager->lock);
 
     //日志放入内存缓存,再发送
-    rst = log_producer_manager_add_log(manager, log, flush);
+    rst = log_producer_manager_add_log(manager, log, flush, record_time);
     //aos_debug_log((LB, "log producer client add log rst %d", rst));
     
     return rst;

+ 1 - 3
Framework/RvcLogSdk/log_producer_client.h

@@ -60,9 +60,7 @@ LOG_EXPORT void destroy_log_producer_client(log_producer_client* client);
  * @param flush
  * @return ok if success, LOG_PRODUCER_DROP_ERROR if buffer is full, LOG_PRODUCER_INVALID if client is destroyed, LOG_PRODUCER_PERSISTENT_ERROR is save binlog failed.
  */
-LOG_EXPORT log_producer_result log_producer_client_add_log(log_producer_client* client,
-    log_item* log,
-    int flush);
+LOG_EXPORT log_producer_result log_producer_client_add_log(log_producer_client* client, log_item* log, int flush, long record_time);
 
 /**
  * add log天眼

+ 2 - 2
Framework/RvcLogSdk/log_producer_manager.c

@@ -673,11 +673,11 @@ CS_LEAVE(producer_manager->lock); \
 return ret; }
 
 
-log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush)
+log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time)
 {
     LOG_PRODUCER_MANAGER_ADD_LOG_BEGIN;
 
-    if (0 != add_log(producer_manager->builder, producer_manager->start_time, producer_manager->pack_index, log)) {
+    if (0 != add_log(producer_manager->builder, producer_manager->start_time, producer_manager->pack_index, log, record_time)) {
         aos_error_log((LB, "add log failed !"));
     }
 

+ 1 - 3
Framework/RvcLogSdk/log_producer_manager.h

@@ -48,9 +48,7 @@ typedef struct _log_producer_manager
 extern log_producer_manager* create_log_producer_manager(log_producer_config* producer_config);
 extern void destroy_log_producer_manager(log_producer_manager* manager);
 
-extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager,
-    log_item* log,
-    int flush);
+extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time);
 
 extern log_producer_result log_producer_manager_add_beidou_log(log_producer_manager* producer_manager,
     beidou_log_item* log,

+ 6 - 4
Framework/spbase/sp_logwithlink.cpp

@@ -111,9 +111,11 @@ public:
     CSimpleString VtmCode;
     void* logProducer;
     bool m_doLog;
+    long m_time;
     Link_private(LOG_LEVEL_E t_level, LOG_TYPE_E t_type)
         : Level(t_level), Type(t_type), BeginTime(0), EndTime(0), CostTime(0), ResultCode("SUC0000"), m_doLog(true)
     {
+        m_time = time(NULL);
         TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = VtmCode = "";
         logProducer = NULL;
     }
@@ -423,9 +425,9 @@ void DbgWithLink::operator () (const char* str, ...)  const  {
         }
         if (cur != NULL) {
             if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
-                rst = log_producer_client_add_log(cur, &log, 1);
+                rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
             else if (log.Type != LOG_TYPE_SYSTEM)
-                rst = log_producer_client_add_log(cur, &log, 1);
+                rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
         }
     }
 
@@ -486,9 +488,9 @@ void DbgWithLink::operator () ()  const  {
     }
     if (cur != NULL) {
         if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
-            log_producer_client_add_log(cur, &log, 1);
+            log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
         else if (log.Type != LOG_TYPE_SYSTEM)
-            log_producer_client_add_log(cur, &log, 1);
+            log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
     }
 
     if (!m_priPtr->m_doLog)