Explorar o código

Z991239-5349 #comment fea: upload vtmweb logs to kafka

chenliangyu hai 1 ano
pai
achega
e84d05b006

+ 1 - 0
DevAdapter/self/dep/liblog4vendor/liblog4vendor/log4upload.h

@@ -49,6 +49,7 @@ struct log_producer_config
     char* beidou_topic;
     char* business_user_topic;
     char* business_sys_topic;
+    char* vtmweb_topic;
 
     int32_t sendThreadCount;
 

+ 3 - 2
Framework/Common/SpBase.h

@@ -1147,7 +1147,8 @@ struct IEntityFunctionPrivilege
     virtual ErrorCodeEnum GetEntityPriority(const char* pszEntityName, EntityPriorityEnum& nPriority) = 0;
 	
 		/*begin log sender*/
-	virtual ErrorCodeEnum BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser, const char* topicBeidou, const char* bussSys, const char* bussUser) = 0;
+	virtual ErrorCodeEnum BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser, const char* topicBeidou
+		, const char* bussSys, const char* bussUser, const char* vtmWeb) = 0;
 	/*update token*/
 	virtual ErrorCodeEnum SetHttpToken(const char* channelId, const char* token) = 0;
 
@@ -1620,7 +1621,7 @@ private:
 SPBASE_API void* create_log_producer_storage(CSimpleStringA entityName, CSimpleStringA item, CSimpleStringA filePath, CSimpleStringA CmptId, CSimpleString CmptName);
 SPBASE_API void destroy_log_producer_storage(void* obj);
 //创建日志上传模块,通常由spshell自动创建,然后上传
-SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleStringA topicSys, CSimpleStringA topicUser, CSimpleStringA topicBeidou, CSimpleStringA bussinessSys, CSimpleStringA bussinessUser,
+SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleStringA topicSys, CSimpleStringA topicUser, CSimpleStringA topicBeidou, CSimpleStringA bussinessSys, CSimpleStringA bussinessUser, CSimpleStringA topicVTMWeb,
 	CSimpleStringA terminalNo, CSimpleStringA sn, CSimpleStringA filePath, int sendWaitTime);
 SPBASE_API void destroy_log_producer_send();
 //创建实体日志默认上传模块, SpShell 和 SpRun 中调用,内部调用 create_log_producer_storage

+ 1 - 1
Framework/Common/log_define.h

@@ -30,7 +30,7 @@ typedef struct _post_log_result post_log_result;
 
 
 typedef enum {
-    LOG_TYPE_SYSTEM = 0/*系统日志*/, LOG_TYPE_USER = 1/*用户日志*/, LOG_TYPE_BUSINESS_SYSTEM = 2, LOG_TYPE_BUSINESS_USER = 3
+    LOG_TYPE_SYSTEM = 0/*系统日志*/, LOG_TYPE_USER = 1/*用户日志*/, LOG_TYPE_BUSINESS_SYSTEM = 2, LOG_TYPE_BUSINESS_USER = 3, LOG_TYPE_VTMWEB = 4
 }LOG_TYPE_E;
 
 typedef enum {

+ 8 - 2
Framework/RvcLogSdk/log_builder.c

@@ -234,7 +234,7 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
         cJSON_AddItemToObject(skyeye_content, "CmptId", cJSON_CreateString(bder->config->skyeyeCmptId));
         cJSON_AddItemToObject(skyeye_content, "CmptName", cJSON_CreateString(bder->config->skyeyeCmptName));
         //日志数据信息
-        if (log->Type == LOG_TYPE_USER || log->Type == LOG_TYPE_BUSINESS_USER) {
+        if (log->Type == LOG_TYPE_USER || log->Type == LOG_TYPE_BUSINESS_USER || log->Type == LOG_TYPE_VTMWEB) {
             if (log->Level == LOG_LEVEL_DEBUG) {
                 cJSON_AddItemToObject(skyeye_content, "LogFile", cJSON_CreateString("UD"));
                 cJSON_AddItemToObject(meta_log_content, "baseLogType", cJSON_CreateString("DEBUG"));
@@ -397,7 +397,11 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
         grp_log->type = LOG_TYPE_SYS_BUSINESS;
     } else if (log->Type == LOG_TYPE_BUSINESS_USER) {
         grp_log->type = LOG_TYPE_USER_BUSINESS;
-    } else {
+    }
+    else if (log->Type == LOG_TYPE_VTMWEB) {
+        grp_log->type = LOG_TYPE_WEBSDK;
+    }
+    else {
         grp_log->type = LOG_TYPE_SYS_SKYEYE;
     }
     grp_log->level = log->Level;
@@ -555,6 +559,8 @@ static uint32_t _log_pack(log_group_builder* bder, log_buf* buf)
         cJSON_AddItemToObject(pack_content, "topic", cJSON_CreateString(bder->config->business_user_topic));
     else if (bder->grp->logs[0].type == LOG_TYPE_SYS_BUSINESS)
         cJSON_AddItemToObject(pack_content, "topic", cJSON_CreateString(bder->config->business_sys_topic));
+    else if (bder->grp->logs[0].type == LOG_TYPE_WEBSDK)
+        cJSON_AddItemToObject(pack_content, "topic", cJSON_CreateString(bder->config->vtmweb_topic));
    
     for (i = 0; i < bder->grp->n_logs; i++) {
         if (bder->grp->logs[i].buffer != NULL && (bder->grp->logs[0].type == LOG_TYPE_BEIDOU || bder->grp->logs[i].check))

+ 1 - 1
Framework/RvcLogSdk/log_builder.h

@@ -19,7 +19,7 @@
 LOG_CPP_START
 
 typedef enum {
-    LOG_TYPE_USER_SKYEYE, LOG_TYPE_SYS_SKYEYE, LOG_TYPE_BEIDOU, LOG_TYPE_USER_BUSINESS, LOG_TYPE_SYS_BUSINESS,
+    LOG_TYPE_USER_SKYEYE, LOG_TYPE_SYS_SKYEYE, LOG_TYPE_BEIDOU, LOG_TYPE_USER_BUSINESS, LOG_TYPE_SYS_BUSINESS, LOG_TYPE_WEBSDK
 }build_type_e;
 
 typedef struct _lz4_log_buf {

+ 11 - 7
Framework/RvcLogSdk/log_db.cpp

@@ -532,15 +532,17 @@ int getReadType()
 	static unsigned int sum = 0;
 	sum = sum % 100;
 	sum++;
-	int cmpData = sum % 10;
+	int cmpData = sum % 11;
 	if (cmpData <= 5)
-		return 1;
+		return build_type_e::LOG_TYPE_SYS_SKYEYE;
 	else if (cmpData <= 7)
-		return 0;
+		return build_type_e::LOG_TYPE_USER_SKYEYE;
 	else if (cmpData <= 8)
-		return 3;
+		return build_type_e::LOG_TYPE_USER_BUSINESS;
 	else if (cmpData <= 9)
-		return 4;
+		return build_type_e::LOG_TYPE_SYS_BUSINESS;
+	else if (cmpData <= 10)
+		return build_type_e::LOG_TYPE_WEBSDK;
 	else
 		return 1;
 
@@ -559,7 +561,8 @@ log_group_builder* db_read_table_last_logs(log_db_manager* manager, int count) {
 	sprintf(strCount, "%d", count);
 	std::string querySql = "select * from ";
 	querySql.append(manager->table_name);
-	querySql.append(" where " + COLUMN_Status + " != ").append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string((long long)getReadType()));
+	int readType = getReadType();
+	querySql.append(" where " + COLUMN_Status + " != ").append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string((long long)readType));
 	querySql.append(/*" order by " + COLUMN_DateTime + */" LIMIT ").append(strCount).append(";");
 
 	try {
@@ -567,9 +570,10 @@ log_group_builder* db_read_table_last_logs(log_db_manager* manager, int count) {
 
 		if (q.eof())
 		{
+			//if can not find, try to get LOG_TYPE_SYS_SKYEYE logs
 			std::string searchSys= "select * from ";
 			searchSys.append(manager->table_name);
-			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus);
+			searchSys.append(" where " + COLUMN_Status + " != ").append(strStatus).append(strStatus).append(" AND ").append(COLUMN_Type).append("=").append(std::to_string(LOG_TYPE_SYS_SKYEYE));
 			searchSys.append(/*" order by " + COLUMN_DateTime + */" LIMIT ").append(strCount).append(";");
 			q = manager->db->execQuery(searchSys.c_str());
 		}

+ 9 - 0
Framework/RvcLogSdk/log_producer_config.c

@@ -95,6 +95,10 @@ void destroy_log_producer_config(log_producer_config* pConfig)
     {
         sdsfree(pConfig->business_sys_topic);
     }
+    if (pConfig->vtmweb_topic != NULL)
+    {
+        sdsfree(pConfig->vtmweb_topic);
+    }
     if (pConfig->persistentFilePath != NULL)
     {
         sdsfree(pConfig->persistentFilePath);
@@ -397,6 +401,11 @@ void log_producer_config_set_business_sys_topic(log_producer_config* config, con
     _copy_config_string(topic, &config->business_sys_topic);
 }
 
+void log_producer_config_set_vtmweb_topic(log_producer_config* config, const char* topic)
+{
+    _copy_config_string(topic, &config->vtmweb_topic);
+}
+
 void log_producer_config_set_beidou_topic(log_producer_config* config, const char* topic)
 {
     _copy_config_string(topic, &config->beidou_topic);

+ 2 - 0
Framework/RvcLogSdk/log_producer_config.h

@@ -39,6 +39,7 @@ typedef struct _log_producer_config
     char* beidou_topic;
     char* business_user_topic;
     char* business_sys_topic;
+    char* vtmweb_topic;
 
     int32_t sendThreadCount;
     int32_t sendThreadWaitMs;
@@ -174,6 +175,7 @@ LOG_EXPORT void log_producer_config_set_skyeye_sys_topic(log_producer_config* co
 LOG_EXPORT void log_producer_config_set_beidou_topic(log_producer_config* config, const char* topic);
 LOG_EXPORT void log_producer_config_set_business_user_topic(log_producer_config* config, const char* topic);
 LOG_EXPORT void log_producer_config_set_business_sys_topic(log_producer_config* config, const char* topic);
+LOG_EXPORT void log_producer_config_set_vtmweb_topic(log_producer_config* config, const char* topic);
 
 /**
  * set loggroup max log count, if loggoup's logs count  >= log_count, current loggroup will been flushed out

+ 2 - 1
Framework/RvcLogSdk/log_producer_manager.c

@@ -108,7 +108,8 @@ void* log_producer_read_persistent_thread(void* param)
                 config->skyeye_sys_topic == NULL ||
                 config->beidou_topic == NULL ||
                 config->business_user_topic == NULL ||
-                config->business_sys_topic == NULL) {
+                config->business_sys_topic == NULL ||
+                config->vtmweb_topic == NULL) {
                 aos_debug_log((LB, "endpoint is NULL, skip pack and send data"));
                 sleepMs = LOG_PRODUCER_READ_INTERVAL_MS;
                 break;

+ 8 - 0
Framework/RvcLogSdk/log_producer_sender.c

@@ -39,11 +39,13 @@ unsigned long g_upload_TerminalUser_Suc = 0;
 unsigned long g_upload_BussinessSys_Suc = 0;
 unsigned long g_upload_BussinessUser_Suc = 0;
 unsigned long g_upload_beidou_Suc = 0;
+unsigned long g_upload_vtmsdk_Suc = 0;
 unsigned long g_upload_TerminalSys_Err = 0;
 unsigned long g_upload_TerminalUser_Err = 0;
 unsigned long g_upload_BussinessSys_Err = 0;
 unsigned long g_upload_BussinessUser_Err = 0;
 unsigned long g_upload_beidou_Err = 0;
+unsigned long g_upload_vtmsdk_Err = 0;
 #pragma data_seg()
 #pragma comment(linker,"/section:LOG_SEND_INFO,rws")
 
@@ -233,6 +235,9 @@ void * log_producer_send_fun(void * param)
 	        case LOG_TYPE_SYS_BUSINESS:
                 g_upload_BussinessSys_Suc += send_buf->n_logs;
                 break;
+            case LOG_TYPE_WEBSDK:
+                g_upload_vtmsdk_Suc += send_buf->n_logs;
+                break;
 	        default:
                 break;
 	        }
@@ -256,6 +261,9 @@ void * log_producer_send_fun(void * param)
             case LOG_TYPE_SYS_BUSINESS:
                 g_upload_BussinessSys_Err += send_buf->n_logs;
                 break;
+            case LOG_TYPE_WEBSDK:
+                g_upload_vtmsdk_Err += send_buf->n_logs;
+                break;
             default:
                 break;
             }

+ 3 - 1
Framework/spbase/SpEntityPrivilege.cpp

@@ -2035,7 +2035,8 @@ ErrorCodeEnum SpEntityPrivilege::CloseOuputConsole()
 	return Error;
 }
 
-ErrorCodeEnum SpEntityPrivilege::BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser, const char* topicBeidou, const char* bussSys, const char* bussUser)
+ErrorCodeEnum SpEntityPrivilege::BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser, const char* topicBeidou
+	, const char* bussSys, const char* bussUser, const char* vtmWeb)
 {
     ErrorCodeEnum Error;
     iobuffer_t* pkt = iobuffer_create(-1, -1);
@@ -2045,6 +2046,7 @@ ErrorCodeEnum SpEntityPrivilege::BeginLogSend(const char* endpoint, const char*
     iobuffer_write(pkt, IOBUF_T_STR, topicBeidou, -1);
     iobuffer_write(pkt, IOBUF_T_STR, bussSys, -1);
     iobuffer_write(pkt, IOBUF_T_STR, bussUser, -1);
+	iobuffer_write(pkt, IOBUF_T_STR, vtmWeb, -1);
     Error = PostInfoShell(SHELL_CMD_INFO_START_UPLOAD_LOG, &pkt);
     if (pkt)
         iobuffer_dec_ref(pkt);

+ 2 - 1
Framework/spbase/SpEntityPrivilege.h

@@ -59,7 +59,8 @@ public:
 	virtual ErrorCodeEnum ShowOuputConsole();
 	virtual ErrorCodeEnum CloseOuputConsole();
 	
-	virtual ErrorCodeEnum BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser, const char* topicBeidou, const char* bussSys, const char* bussUser);
+	virtual ErrorCodeEnum BeginLogSend(const char* endpoint, const char* topicSys, const char* topicUser
+		, const char* topicBeidou, const char* bussSys, const char* bussUser, const char* vtmWeb);
 	virtual ErrorCodeEnum SetHttpToken(const char* channelId, const char* token);
 
     virtual ErrorCodeEnum SetEntityPriority(const char* pszEntityName, EntityPriorityEnum nPriority);

+ 8 - 2
Framework/spbase/sp_logwithlink.cpp

@@ -36,6 +36,7 @@ void* g_logProducer = NULL;//为spshell、spbase共用,所以不放入getEntit
 int g_curEntityIdx = 0;
 std::map<std::string, int> g_entityDebugLevelArr;
 void* g_logProduceSender = NULL;
+std::string g_terminalNo = "";
 int curEntityLogLevel = 1;
 
 
@@ -181,7 +182,10 @@ public:
         Host = "vtmtlog.paas.cmbchina.cn:8080";
         CallStack = "{\"callStack\":[]}";
         DbStack = "{\"dbStack\":[]}";
-        Tags = "{\"tags\":{}}";
+        if(g_terminalNo.length() == 0)
+            Tags = "{\"tags\":{}}";
+        else
+            Tags = CSimpleString::Format("{\"tags\":{\"TerminalNo\":%s}}", g_terminalNo.c_str()).GetData();
     }
 };
 
@@ -663,7 +667,7 @@ SPBASE_API void destroy_log_producer_storage(void* obj)
     }
 }
 
-SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleStringA topicSys, CSimpleStringA topicUser, CSimpleStringA topicBeidou, CSimpleStringA bussinessSys, CSimpleStringA bussinessUser,
+SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleStringA topicSys, CSimpleStringA topicUser, CSimpleStringA topicBeidou, CSimpleStringA bussinessSys, CSimpleStringA bussinessUser, CSimpleStringA topicVTMWeb,
     CSimpleStringA terminalNo, CSimpleStringA sn, CSimpleStringA filePath, int sendWaitTime)
 {
 #ifndef _WIN32
@@ -680,6 +684,7 @@ SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleString
     log_producer_config_set_skyeye_sys_topic(config, topicSys.GetData());
     log_producer_config_set_business_sys_topic(config, bussinessSys.GetData());
     log_producer_config_set_business_user_topic(config, bussinessUser.GetData());
+    log_producer_config_set_vtmweb_topic(config, topicVTMWeb.GetData());
 
     // set resource params
     log_producer_config_set_packet_log_bytes(config, 4 * 1024 * 1024);
@@ -708,6 +713,7 @@ SPBASE_API void* create_log_producer_send(CSimpleStringA endpoint, CSimpleString
     log_producer_config_set_skyeye_item(config, (char*)"upload");
 
     log_producer_config_set_skyeye_terminalNo(config, (char*)terminalNo.GetData());
+    g_terminalNo = (char*)terminalNo.GetData();
     log_producer_config_set_skyeye_sn(config, (char*)sn.GetData());
     if (filePath.GetLength() == 0) {
         auto dstPath = generateDefaultStoragePath();

+ 2 - 1
Framework/spshell/app.cpp

@@ -872,10 +872,11 @@ void app_upload_last_log()
     const char* topicBeidou = "LR18_23_VTMTerminalLogService_L_trace_VTMTerminalTraceLog_SRC_SZ";
     const char* topicBussSys = "LR18_23_VTMTerminalLogService_L_sys_VTMBusiness_SRC_SZ";
     const char* topicBussUser = "LR18_23_VTMTerminalLogService_L_biz_VTMBusiness_SRC_SZ";
+	const char* topicVTMWeb = "LR18_23_VTMWebSDKUserLog";
 
 	char dstVer[SP_MAX_VER_LEN] = "";
 	auto ret = sp_cfg_getVer(dstVer);
 	if (ret != Error_Succeed)
 		sprintf_s(dstVer, SP_MAX_VER_LEN, "Unknown");
-    create_log_producer_send(endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser, t_terminalNo, dstVer, "", 100);
+    create_log_producer_send(endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser, topicVTMWeb, t_terminalNo, dstVer, "", 100);
 }

+ 6 - 4
Framework/spshell/svc.cpp

@@ -531,21 +531,23 @@ void on_start_upload_log(sp_rpc_server_t* server, int epid, int svc_id, int call
 		return;
 	sp_env_t* env = sp_get_env();
 
-	char *endpoint = NULL, *topicSys = NULL, *topicUser = NULL, *topicBeidou = NULL, *bussSys = NULL, *bussUser = NULL;
-	iobuffer_format_read(*info_pkt, "ssssss", &endpoint, &topicSys, &topicUser, &topicBeidou, &bussSys, &bussUser);
+	char* endpoint = NULL, * topicSys = NULL, * topicUser = NULL, * topicBeidou = NULL, * bussSys = NULL, * bussUser = NULL , *vtmWeb = NULL;
+	iobuffer_format_read(*info_pkt, "sssssss", &endpoint, &topicSys, &topicUser, &topicBeidou, &bussSys, &bussUser, &vtmWeb);
 	
 	char dstVer[SP_MAX_VER_LEN] = "";
 	auto ret = sp_cfg_getVer(dstVer);
 	if (ret != Error_Succeed)
 		sprintf_s(dstVer, SP_MAX_VER_LEN, "Unknown");
-	auto logSender = create_log_producer_send(endpoint, topicSys, topicUser, topicBeidou, bussSys, bussUser, env->cfg->root_ini->terminal_no, dstVer, "", 20000);
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("create log produce sender %s-%s-%s-%s-%s-%s %s", endpoint, topicSys, topicUser, topicBeidou, bussSys, bussUser, logSender == NULL ? "failed" : "success");
+	auto logSender = create_log_producer_send(endpoint, topicSys, topicUser, topicBeidou, bussSys, bussUser, vtmWeb, env->cfg->root_ini->terminal_no, dstVer, "", 20000);
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("create log produce sender %s-%s-%s-%s-%s-%s-%s %s",
+		endpoint, topicSys, topicUser, topicBeidou, bussSys, bussUser, vtmWeb, logSender == NULL ? "failed" : "success");
 	toolkit_free(endpoint);
 	toolkit_free(topicSys);
 	toolkit_free(topicUser);
 	toolkit_free(topicBeidou);
 	toolkit_free(bussSys);
 	toolkit_free(bussUser);
+	toolkit_free(vtmWeb);
 	
 }
 

+ 8 - 2
Module/mod_chromium/CWebsocketServer.cpp

@@ -282,8 +282,14 @@ namespace Chromium {
 			auto t_logProducer = g_logProducerArr[t_entityName.second.GetData()];
 
 
-			auto logType = json_deal::getStringFromCjsonObj(pJson.get(), msg_logType);//it can be equal to Sys/User
-			LOG_TYPE_E t_type = (logType.second.Compare("User", true) == 0) ? LOG_TYPE_USER : LOG_TYPE_SYSTEM;
+			auto logType = json_deal::getStringFromCjsonObj(pJson.get(), msg_logType);//it can be equal to Sys/User/VTMWeb
+			LOG_TYPE_E t_type = LOG_TYPE_SYSTEM;
+			if (logType.second.Compare("User", true) == 0)
+				t_type = LOG_TYPE_USER;
+			else if (logType.second.Compare("VTMWeb", true) == 0)
+				t_type = LOG_TYPE_VTMWEB;
+			else if(logType.second.Compare("Sys", true) == 0)
+				t_type = LOG_TYPE_SYSTEM;
 
 			//通过变量方式进行处理
 			DbgWithLink t_obj(changeMessageTypeToLogLevel(messageType), t_type);

+ 0 - 45
Module/mod_guiconsole/mod_guiconsole.cpp

@@ -727,52 +727,7 @@ ErrorCodeEnum CGUIConsoleEntity::SyncMaterialCount(const char* pszDeviceNo, DWOR
 
 void CGUIConsoleEntity::InitializeBeidou()
 {
-	CSmartPointer<IConfigInfo> pConfig;
-	CSimpleString t_endpoint, t_topicSys, t_topicUser, t_topicBeidou, t_bussSys, t_bussUser;
-	bool readSender = false;
-
-	if (GetFunction()->OpenConfig(Config_CenterSetting, pConfig) == Error_Succeed
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "SendEndpoint", t_endpoint)
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "SendSys", t_topicSys)
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "SendUser", t_topicUser)
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "SendBeidou", t_topicBeidou)
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "BusinessSys", t_bussSys)
-		&& Error_Succeed == pConfig->ReadConfigValue("Common", "BusinessUser", t_bussUser)
-		&& 0 != t_topicSys.GetLength()
-		&& 0 != t_topicUser.GetLength()
-		&& 0 != t_topicBeidou.GetLength()
-		&& 0 != t_bussSys.GetLength()
-		&& 0 != t_bussUser.GetLength()) {
-
-		CSimpleStringA dbgInfo = CSimpleStringA::Format("\"endpoint\":\"%s\", \"topicSys\":\"%s\", \"topicUser\":\"%s\", \"topicBeidou\":\"%s\", \"bussSys\":\"%s\", \"bussUser\":\"%s\"",
-			t_endpoint.GetData(), t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData());
-
-		if (0 != t_endpoint.GetLength()) {
-			GetFunction()->GetPrivilegeFunction()->BeginLogSend(t_endpoint.GetData(), t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData());
-			LogWarn(Severity_Low, Error_Debug, EVENT_MOD_GUICONSOLE_ENABLE_UNIONNETLOG_WITH_VALICONFIG,
-				dbgInfo);
-		}
-		else {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("endpoint is empty, do not begin send log");
-			LogWarn(Severity_Low, Error_Debug, EVENT_MOD_GUICONSOLE_DISABLE_UNIONNETLOG_BCZ_LACK, dbgInfo);
-		}
-	}
-	else {
-		const char* default_endpoint = "https://kafkaproxy.paas.cmbchina.cn/api/kafka/log/send";
-		const char* topicSys = "LR18_23_VTMTerminalLogService_L_sys_VTMTerminalSysLog_SRC_SZ";
-		const char* topicUser = "LR18_23_VTMTerminalLogService_L_biz_VTMTerminalUserLog_SRC_SZ";
-		const char* topicBeidou = "LR18_23_VTMTerminalLogService_L_trace_VTMTerminalTraceLog_SRC_SZ";
-		const char* topicBussSys = "LR18_23_VTMTerminalLogService_L_sys_VTMBusiness_SRC_SZ";
-		const char* topicBussUser = "LR18_23_VTMTerminalLogService_L_biz_VTMBusiness_SRC_SZ";
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("read endpoint and topic err, need check centersetting, use default %s-%s-%s-%s-%s-%s",
-			default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser);
-		GetFunction()->GetPrivilegeFunction()->BeginLogSend(default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser);
 
-		CSimpleStringA dbgInfo = CSimpleStringA::Format("\"endpoint\":\"%s\", \"topicSys\":\"%s\", \"topicUser\":\"%s\", \"topicBeidou\":\"%s\", \"bussSys\":\"%s\", \"bussUser\":\"%s\"",
-			default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser);
-
-		LogWarn(Severity_Low, Error_Debug, EVENT_MOD_GUICONSOLE_ENABLE_UNIONNETLOG_WITH_DEFAULTCONFIG, dbgInfo);
-	}
 }
 
 void CGUIConsoleEntity::OnTimeout(DWORD dwTimerID)

+ 12 - 6
Module/mod_vtmloader/VtmLoaderFSM.cpp

@@ -1757,7 +1757,7 @@ bool CVtmLoaderFSM::GetConfig()
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("subscribe event succeed");
 
 	CSmartPointer<IConfigInfo> pConfig;
-	CSimpleString t_endpoint, t_topicSys, t_topicUser, t_topicBeidou, t_bussSys, t_bussUser;
+	CSimpleString t_endpoint, t_topicSys, t_topicUser, t_topicBeidou, t_bussSys, t_bussUser, t_VTMWeb;
 
 	eErr = GetEntityBase()->GetFunction()->OpenConfig(Config_CenterSetting, pConfig);
 	if (eErr == Error_Succeed && Error_Succeed == pConfig->ReadConfigValue("Common", "SendEndpoint", t_endpoint)
@@ -1766,17 +1766,21 @@ bool CVtmLoaderFSM::GetConfig()
 		&& Error_Succeed == pConfig->ReadConfigValue("Common", "SendBeidou", t_topicBeidou)
 		&& Error_Succeed == pConfig->ReadConfigValue("Common", "BusinessSys", t_bussSys)
 		&& Error_Succeed == pConfig->ReadConfigValue("Common", "BusinessUser", t_bussUser)
+		&& Error_Succeed == pConfig->ReadConfigValue("Common", "VTMWeb", t_VTMWeb)
 		&& 0 != t_topicSys.GetLength()
 		&& 0 != t_topicUser.GetLength()
 		&& 0 != t_topicBeidou.GetLength()
 		&& 0 != t_bussSys.GetLength()
-		&& 0 != t_bussUser.GetLength())
+		&& 0 != t_bussUser.GetLength()
+		&& 0 != t_VTMWeb.GetLength())
 	{
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("endpoint:%s, topicSys:%s, topicUser:%s, topicBeidou:%s, bussSys:%s, bussUser:%s", t_endpoint.GetData(), t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData());
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("endpoint:%s, topicSys:%s, topicUser:%s, topicBeidou:%s, bussSys:%s, bussUser:%s, vtmWeb:%s"
+			, t_endpoint.GetData(), t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData(), t_VTMWeb.GetData());
 
 		if (0 != t_endpoint.GetLength())
 		{
-			GetEntityBase()->GetFunction()->GetPrivilegeFunction()->BeginLogSend(t_endpoint.GetData(), t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData());
+			GetEntityBase()->GetFunction()->GetPrivilegeFunction()->BeginLogSend(t_endpoint.GetData()
+				, t_topicSys.GetData(), t_topicUser.GetData(), t_topicBeidou.GetData(), t_bussSys.GetData(), t_bussUser.GetData(), t_VTMWeb.GetData());
 		}
 		else
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("endpoint is empty, do not begin send log");
@@ -1789,8 +1793,10 @@ bool CVtmLoaderFSM::GetConfig()
 		const char* topicBeidou = "LR18_23_VTMTerminalLogService_L_trace_VTMTerminalTraceLog_SRC_SZ";
 		const char* topicBussSys = "LR18_23_VTMTerminalLogService_L_sys_VTMBusiness_SRC_SZ";
 		const char* topicBussUser = "LR18_23_VTMTerminalLogService_L_biz_VTMBusiness_SRC_SZ";
-		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("read endpoint and topic err, need check centersetting, use default %s-%s-%s-%s-%s-%s", default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser);
-		GetEntityBase()->GetFunction()->GetPrivilegeFunction()->BeginLogSend(default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser);
+		const char* topicVTMWeb = "LR18_23_VTMWebSDKUserLog";
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("read endpoint and topic err, need check centersetting, use default %s-%s-%s-%s-%s-%s-%s"
+			, default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser, topicVTMWeb);
+		GetEntityBase()->GetFunction()->GetPrivilegeFunction()->BeginLogSend(default_endpoint, topicSys, topicUser, topicBeidou, topicBussSys, topicBussUser, topicVTMWeb);
 	}
 
 	

+ 1 - 0
Other/liblog4rvcother/log4upload.h

@@ -49,6 +49,7 @@ struct log_producer_config
     char* beidou_topic;
     char* business_user_topic;
     char* business_sys_topic;
+    char* vtmweb_topic;
 
     int32_t sendThreadCount;
 

+ 1 - 0
Other/liblog4vendor/log4upload.h

@@ -49,6 +49,7 @@ struct log_producer_config
     char* beidou_topic;
     char* business_user_topic;
     char* business_sys_topic;
+    char* vtmweb_topic;
 
     int32_t sendThreadCount;