소스 검색

!3 healthmanager open guardian with terminalno

chenliangyu 1 년 전
부모
커밋
85c258ad88

+ 4 - 4
Framework/Common/SpDefine.h

@@ -6,25 +6,25 @@ private:
 	SpDefine() = delete;
 public:
 	//update token params
-#ifdef DEVOPS_ON_ST /*DevOps流水线编译,ST环境*/
+#ifdef DEVOPS_ON_ST /*DevOps娴佹按绾跨紪璇戯紝ST鐜��*/
 	static constexpr const char* channelId = "5fdd82e3b90a4de69f9da4738e5f1216";
 	static constexpr const char*  tokenSecret = "eca829c78067c686561bd844129321c8a78af3";
 	static constexpr const char*  CommonLaunchUrl = "https://rvc-gateway.paasst.cmbchina.cn";
 	static constexpr const char*  CenterConfigTotal = "https://accessproxy-service.paasst.cmbchina.cn/centerconfig";
 	static constexpr const char* endpoint_env = "https://kafkaproxy.paasst.cmbchina.cn/api/kafka/log/send";
-#elif defined(DEVOPS_ON_UAT)/*DevOps流水线编译,UAT环境*/
+#elif defined(DEVOPS_ON_UAT)/*DevOps娴佹按绾跨紪璇戯紝UAT鐜��*/
 	static constexpr const char*  channelId = "7eb748cb71744c87b5c126e05af8cce7";
 	static constexpr const char*  tokenSecret = "eca529c78967c640561bd844229391c8a78af3";
 	static constexpr const char*  CommonLaunchUrl = "https://rvc-gateway.paasuat.cmbchina.cn";
 	static constexpr const char*  CenterConfigTotal = "https://accessproxy-service.paasuat.cmbchina.cn/centerconfig";
 	static constexpr const char* endpoint_env = "https://kafkaproxy.paasuat.cmbchina.cn/api/kafka/log/send";
-#elif defined(DEVOPS_ON_PRD)/*DevOps流水线编译,PRD环境*/
+#elif defined(DEVOPS_ON_PRD)/*DevOps娴佹按绾跨紪璇戯紝PRD鐜��*/
 	static constexpr const char*  channelId = "572f7577fa9f425c8475a8d77db4ae31";
 	static constexpr const char*  tokenSecret = "eca129c78767c670561bd844629361c8a78af3";
 	static constexpr const char*  CommonLaunchUrl = "https://rvc-gateway.paas.cmbchina.cn";
 	static constexpr const char*  CenterConfigTotal = "https://accessproxy-service.paas.cmbchina.cn/centerconfig";
 	static constexpr const char* endpoint_env = "https://kafkaproxy.paas.cmbchina.cn/api/kafka/log/send";
-#else/*本地编译等非DevOps环境编译的版本*/
+#else/*鏈�湴缂栬瘧绛夐潪DevOps鐜��缂栬瘧鐨勭増鏈�*/
 	static constexpr const char*  channelId = "5fdd82e3b90a4de69f9da4738e5f1216";
 	static constexpr const char*  tokenSecret = "eca829c78067c686561bd844129321c8a78af3";
 	static constexpr const char*  CommonLaunchUrl = "https://rvc-gateway.paasst.cmbchina.cn";

+ 2 - 2
Module/mod_healthmanager/mod_healthmanager.cpp

@@ -637,7 +637,7 @@ bool CHealthManagerEntity::StartGuardian()
 
 	}
 	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("guardian path[%s]", csBinPath.GetData());
-	csAll = csSep +  csBinPath + csSep;
+	csAll = csSep +  csBinPath + csSep + m_sysStaticInfo.strTerminalID + csSep;//add terminalno to guardian
 	LPTSTR szCmdline = _strdup(csAll);
 	if( !CreateProcessA( NULL,szCmdline,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)) 
 	{
@@ -653,7 +653,7 @@ bool CHealthManagerEntity::StartGuardian()
 	tk_process_option_t option;
 	csBinPath += "/guardian";
 	Dbg("path:%s", (const char*)csBinPath);
-	sprintf(app, "%s %s %d", (const char*)csBinPath, "oiltest", 1);
+	sprintf(app, "%s %s %s %d", (const char*)csBinPath, m_sysStaticInfo.strTerminalID, "oiltest", 1);
 	option.exit_cb = NULL;
 	option.file = NULL;
 	option.flags = 0;

+ 5 - 2
Other/liblog4rvcother/CMakeLists.txt

@@ -17,13 +17,16 @@ set(${MODULE_PREFIX}_SRCS
 add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
 target_include_directories(${MODULE_NAME} 
     PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-    PRIVATE ${RVC_COMMON_INCLUDE_DIR})
+    PRIVATE ${RVC_COMMON_INCLUDE_DIR}
+    ${OTHER_LIB_BASE_DIR}/libpublicFun
+    ${CONAN_INCLUDE_DIRS_JSONCPP})
+target_link_directories(${MODULE_NAME} PRIVATE ${CONAN_LIB_DIRS_JSONCPP})
 set_target_properties(${MODULE_NAME} PROPERTIES COMPILE_DEFINITIONS "LIBLOG4RVCOTHER_EXPORTS")
 set_target_properties(${MODULE_NAME} PROPERTIES DEBUG_POSTFIX "d")
 
 if(MSVC)
     list(APPEND OTHER_LIBS Psapi)
 endif(MSVC)
-target_link_libraries(${MODULE_NAME} CONAN_PKG::log4cplus ${OTHER_LIBS})
+target_link_libraries(${MODULE_NAME} CONAN_PKG::log4cplus ${OTHER_LIBS} libpublicFun ${CONAN_PKG_LIBS_JSONCPP})
 
 deploy_others(${MODULE_PREFIX} ${MODULE_NAME})

+ 8 - 0
Other/liblog4rvcother/log4cplus_helper.cpp

@@ -4,12 +4,15 @@
 #include <string.h>
 
 #include "log4link.h"
+#include "skyeyeLog/skyeyeLog.h"
 
 #if defined(_WIN32) && defined (LOG4CPLUS_HAVE_WIN32_CONSOLE)
 #include <log4cplus/win32consoleappender.h>
 #define WIN32_CONSOLE 1
 #endif
 
+#define USE_SKYEYELOG
+
 using namespace log4cplus;
 using namespace log4cplus::helpers;
 
@@ -513,7 +516,12 @@ namespace cmb {
 
     void log4cplus_helper::initialize_linklog(const log_init_config& config)
     {
+#ifdef USE_SKYEYELOG
+
+#else
 		_upload_helper.initialize(config);
+#endif
+
     }
 
     void log4cplus_helper::loglink(LOG_LEVEL_E level, vtm_string text)

+ 1 - 0
Other/liblog4rvcother/log4rvcother.h

@@ -140,6 +140,7 @@ namespace cmb
 		short log_level;      /*见上面 CMB_LOG_TRACE 等定义*/
 		std::string dev_name;  /*硬件名称,用于作为子目录的区分*/
 		std::string log_dir;  /*在 log_type 包含 CMB_LOG_TYPE_FILE 时,该参数才有效,用于记录日志的目录*/
+		std::string terminalno; /*创建log时必须,由healthmanager传入*/
 
 		log_init_config()
 			:log_type(CMB_LOG_TYPE_FILE)

+ 113 - 0
Other/libpublicFun/skyeyeLog/skyeyeLog.cpp

@@ -6,11 +6,124 @@
 #include <mutex>
 #include "uuid4.h"
 #include "SpDefine.h"
+#include <list>
 #include <cstdarg>
 
 #define MAX_LOG_LEN 1900
 void skyeye_GetToken(char* channelId, char* token, char* terminalno, char* reserve1);
 
+class Link_private {
+public:
+	LOG_LEVEL_E Level;
+	LOG_TYPE_E Type;
+	std::string ResultCode;
+	std::string TraceID;
+	std::string ResultMsg;
+	std::string LogCode;
+	std::string API;
+	long BeginTime;
+	long EndTime;
+	long CostTime;
+	std::string BussID;
+	std::string TipMsg;
+	std::string SourceType;
+	std::string VtmCode;
+	std::string recordTime;
+
+public:
+	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")
+	{
+		TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = recordTime = VtmCode = "";
+	}
+
+	std::string get_baseLogType() const {
+		if (Level == LOG_LEVEL_DEBUG)
+			return "DEBUG";
+		else if (Level == LOG_LEVEL_INFO)
+			return "INFO";
+		else if (Level == LOG_LEVEL_WARN)
+			return "WARN";
+		else if (Level == LOG_LEVEL_ERROR)
+			return "ERROR";
+		else if (Level == LOG_LEVEL_FATAL)
+			return "PERFORMANCE";
+		else
+			return "INFO";
+	}
+
+	std::string get_LogFile() const {
+		if (Level == LOG_LEVEL_DEBUG)
+			return "SD";
+		else if (Level == LOG_LEVEL_INFO)
+			return "SI";
+		else if (Level == LOG_LEVEL_WARN)
+			return "SW";
+		else if (Level == LOG_LEVEL_ERROR)
+			return "SE";
+		else if (Level == LOG_LEVEL_FATAL)
+			return "SF";
+		else
+			return "SI";
+	}
+
+	std::string get_LogType() const {
+		if (Level == LOG_LEVEL_DEBUG)
+			return "SYSTEM_DEBUG";
+		else if (Level == LOG_LEVEL_INFO)
+			return "SYSTEM_INFO";
+		else if (Level == LOG_LEVEL_WARN)
+			return "SYSTEM_WARN";
+		else if (Level == LOG_LEVEL_ERROR)
+			return "SYSTEM_ERROR";
+		else if (Level == LOG_LEVEL_FATAL)
+			return "SYSTEM_PERFORMANCE";
+		else
+			return "SYSTEM_INFO";
+	}
+};
+
+class  skyeye_logger {
+public:
+	static skyeye_logger& getDefaultLogger();
+
+
+	//用户、系统日志均必填,设置日志级别
+	skyeye_logger& setLogLevel(LOG_LEVEL_E t_level);
+	//用户、系统日志均必填,设置日志类型
+	skyeye_logger& setLogType(LOG_TYPE_E t_type);
+	//用户、系统日志均必填,交易处理结果代码,0表示处理成功,其他表示失败,可为系统本身的错误码,也可为后台系统返回的错误码
+	skyeye_logger& setResultCode(std::string t_ResultCode);
+	//用户、系统日志均必填,业务跟踪ID, 32字节长度的字符串,唯一识别每笔请求
+	skyeye_logger& setTraceID(std::string t_TraceID);
+	//用户、系统日志LOG_LEVEL_WARN以上必填
+	//交易处理结果信息,包括成功与失败信息,可为系统本身的成功/失败信息,也可为后台系统返回的成功/失败信息.
+	skyeye_logger& setResultMsg(std::string t_ResultMsg);
+	//用户日志必填,日志码
+	//终端中标识各个交易如读卡、读取身份证等。如果终端由于客观原因无法识别交易场景,则可字段由上游传入。
+	skyeye_logger& setLogCode(std::string t_LogCode);
+	skyeye_logger& setAPI(std::string t_API);//用户日志必填,请求路径/接口名称.
+	skyeye_logger& setBussID(std::string t_BussID);//用户日志必填,请求业务ID
+	skyeye_logger& setTipMsg(std::string t_TipMsg);//用户日志LOG_LEVEL_WARN以上必填,直接向客户展示的报错信息.
+	skyeye_logger& setSourceType(std::string t_SourceType);//系统日志LOG_LEVEL_FATAL必填,异常来源类型
+	skyeye_logger& setBeginTime(long t_BeginTime);//用户日志必填, 请求发送/接收时间
+	skyeye_logger& setEndTime(long t_EndTime);//用户日志必填, 响应接收 / 应答时间
+	skyeye_logger& setCostTime(long t_costTime);//消耗时间,自定义字段,单位ms
+	skyeye_logger& setVtmCode(std::string t_VtmCode);//VtmCode,记录原告警
+	void operator () (LOG_LEVEL_E t_level, LOG_TYPE_E t_type, const char* str, ...);
+private:
+	Link_private* m_msg;
+public:
+	//logger default param
+	Link_const m_constParam;
+
+private:
+	skyeye_logger() {};
+	skyeye_logger(const skyeye_logger&) = delete;
+	const skyeye_logger& operator=(const skyeye_logger&) = delete;
+};
+
+
 void GetUnitedTimeStr(time_t time, char* szTime)
 {
 	struct tm* tm = localtime(&time);

+ 3 - 113
Other/libpublicFun/skyeyeLog/skyeyeLog.h

@@ -1,77 +1,7 @@
 #include <log_define.h>
 #include <string>
-#include <list>
+#include "../publicExport.h"
 
-class Link_private {
-public:
-	LOG_LEVEL_E Level;
-	LOG_TYPE_E Type;
-	std::string ResultCode;
-	std::string TraceID;
-	std::string ResultMsg;
-	std::string LogCode;
-	std::string API;
-	long BeginTime;
-	long EndTime;
-	long CostTime;
-	std::string BussID;
-	std::string TipMsg;
-	std::string SourceType;
-	std::string VtmCode;
-	std::string recordTime;
-
-public:
-	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")
-	{
-		TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = recordTime = VtmCode = "";
-	}
-
-	std::string get_baseLogType() const {
-		if (Level == LOG_LEVEL_DEBUG)
-			return "DEBUG";
-		else if (Level == LOG_LEVEL_INFO)
-			return "INFO";
-		else if (Level == LOG_LEVEL_WARN)
-			return "WARN";
-		else if (Level == LOG_LEVEL_ERROR)
-			return "ERROR";
-		else if (Level == LOG_LEVEL_FATAL)
-			return "PERFORMANCE";
-		else
-			return "INFO";
-	}
-
-	std::string get_LogFile() const {
-		if (Level == LOG_LEVEL_DEBUG)
-			return "SD";
-		else if (Level == LOG_LEVEL_INFO)
-			return "SI";
-		else if (Level == LOG_LEVEL_WARN)
-			return "SW";
-		else if (Level == LOG_LEVEL_ERROR)
-			return "SE";
-		else if (Level == LOG_LEVEL_FATAL)
-			return "SF";
-		else
-			return "SI";
-	}
-
-	std::string get_LogType() const {
-		if (Level == LOG_LEVEL_DEBUG)
-			return "SYSTEM_DEBUG";
-		else if (Level == LOG_LEVEL_INFO)
-			return "SYSTEM_INFO";
-		else if (Level == LOG_LEVEL_WARN)
-			return "SYSTEM_WARN";
-		else if (Level == LOG_LEVEL_ERROR)
-			return "SYSTEM_ERROR";
-		else if (Level == LOG_LEVEL_FATAL)
-			return "SYSTEM_PERFORMANCE";
-		else
-			return "SYSTEM_INFO";
-	}
-};
 
 class Link_const 
 {
@@ -86,47 +16,7 @@ public:
 	std::string m_version;
 };
 
-class  skyeye_logger {
-public:
-	static skyeye_logger& getDefaultLogger();
-	
-
-	//用户、系统日志均必填,设置日志级别
-	skyeye_logger& setLogLevel(LOG_LEVEL_E t_level);
-	//用户、系统日志均必填,设置日志类型
-	skyeye_logger& setLogType(LOG_TYPE_E t_type);
-	//用户、系统日志均必填,交易处理结果代码,0表示处理成功,其他表示失败,可为系统本身的错误码,也可为后台系统返回的错误码
-	skyeye_logger& setResultCode(std::string t_ResultCode);
-	//用户、系统日志均必填,业务跟踪ID, 32字节长度的字符串,唯一识别每笔请求
-	skyeye_logger& setTraceID(std::string t_TraceID);
-	//用户、系统日志LOG_LEVEL_WARN以上必填
-	//交易处理结果信息,包括成功与失败信息,可为系统本身的成功/失败信息,也可为后台系统返回的成功/失败信息.
-	skyeye_logger& setResultMsg(std::string t_ResultMsg);
-	//用户日志必填,日志码
-	//终端中标识各个交易如读卡、读取身份证等。如果终端由于客观原因无法识别交易场景,则可字段由上游传入。
-	skyeye_logger& setLogCode(std::string t_LogCode);
-	skyeye_logger& setAPI(std::string t_API);//用户日志必填,请求路径/接口名称.
-	skyeye_logger& setBussID(std::string t_BussID);//用户日志必填,请求业务ID
-	skyeye_logger& setTipMsg(std::string t_TipMsg);//用户日志LOG_LEVEL_WARN以上必填,直接向客户展示的报错信息.
-	skyeye_logger& setSourceType(std::string t_SourceType);//系统日志LOG_LEVEL_FATAL必填,异常来源类型
-	skyeye_logger& setBeginTime(long t_BeginTime);//用户日志必填, 请求发送/接收时间
-	skyeye_logger& setEndTime(long t_EndTime);//用户日志必填, 响应接收 / 应答时间
-	skyeye_logger& setCostTime(long t_costTime);//消耗时间,自定义字段,单位ms
-	skyeye_logger& setVtmCode(std::string t_VtmCode);//VtmCode,记录原告警
-	void operator () (LOG_LEVEL_E t_level, LOG_TYPE_E t_type, const char* str, ...);
-private:
-	Link_private* m_msg;
-public:
-	//logger default param
-	Link_const m_constParam;
-	
-private:
-	skyeye_logger() {};
-	skyeye_logger(const skyeye_logger&) = delete;
-	const skyeye_logger& operator=(const skyeye_logger&) = delete;
-};
-
 //CreateDefaultLogger with all params
-void CreateDefaultLogger(std::string logEndpoint, std::string logTopic, std::string tokenEndpoint, std::string channelId, std::string tokenSecret, Link_const constParam);
+PUBLIC_API void CreateDefaultLogger(std::string logEndpoint, std::string logTopic, std::string tokenEndpoint, std::string channelId, std::string tokenSecret, Link_const constParam);
 //CreateDefaultLogger with neccessary params, other params use default values.
-void CreateDefaultLogger(std::string terminalno, std::string version, std::string entityName, std::string itemId);
+PUBLIC_API void CreateDefaultLogger(std::string terminalno, std::string version, std::string entityName, std::string itemId);

+ 8 - 4
Tool/guardian/CMakeLists.txt

@@ -7,18 +7,22 @@ endif(NOT MSVC)
 
 add_executable(${MODULE_NAME} guardian.cpp)
 
+MESSAGE( STATUS "OTHER_LIB_BASE_DIR = ${OTHER_LIB_BASE_DIR}")
+MESSAGE( STATUS "CONAN_LIB_DIRS_JSONCPP = ${CONAN_LIB_DIRS_JSONCPP}")
+MESSAGE( STATUS "CONAN_PKG_LIBS_JSONCPP = ${CONAN_PKG_LIBS_JSONCPP}")
+
 target_include_directories(${MODULE_NAME} PRIVATE
     ${RVC_TOOLKIT_INCLUDE_DIR}
     ${RVC_WINPR_INCLUDE_DIR}
     ${Tool_BASE_DIR}/GuardianBase
     ${OTHER_LIB_BASE_DIR}/liblog4rvcother
-    ${OTHER_LIB_BASE_DIR}/libpublicFun
+    ${CONAN_LIB_DIRS_JSONCPP}
 )
-
+target_link_directories(${MODULE_NAME} PRIVATE ${CONAN_LIB_DIRS_JSONCPP})
 if(MSVC)
-    target_link_libraries(${MODULE_NAME} PRIVATE ${TOOLKIT_LIB} Ws2_32 log4rvcother libpublicFun)
+    target_link_libraries(${MODULE_NAME} PRIVATE ${TOOLKIT_LIB} Ws2_32 log4rvcother ${CONAN_PKG_LIBS_JSONCPP})
 else()
-    target_link_libraries(${MODULE_NAME} PRIVATE ${WINPR_LIB} ${TOOLKIT_LIB} log4rvcother libpublicFun)
+    target_link_libraries(${MODULE_NAME} PRIVATE ${WINPR_LIB} ${TOOLKIT_LIB} log4rvcother ${CONAN_PKG_LIBS_JSONCPP})
 endif(MSVC)
 
 install(TARGETS ${MODULE_NAME} 

+ 7 - 1
Tool/guardian/guardian.cpp

@@ -1590,11 +1590,16 @@ static void sig_handle(int signo)
 }
 #endif
 
-int main()
+int main(int argc, char* argv[])
 {
 	//attach file descriptors 0,1,2 to /dev/null(for deamon app)
+	std::string terminalno;
 	int fd0, fd1, fd2;
 	g_bFrameOnline = true;
+
+	if (argc > 1)
+		terminalno = argv[1];
+
 #ifdef linux
 	fd0 = open("/dev/null", O_RDWR);
 	fd1 = dup(0);
@@ -1615,6 +1620,7 @@ int main()
 #endif
 	cmb::log_init_config config;
 	config.dev_name = "guardian";
+	config.terminalno = terminalno;
 	///*TODO: 依赖上层提供环境变量来控制路径和开关,可以考虑厂商的方式 (80374374@1/4/2024)*/
 #if defined(_MSC_VER)
 	config.log_dir = ("C:\\rvc\\dbg\\");