Преглед на файлове

!2 complete all third party's log module functions, need self-test

chenliangyu преди 1 година
родител
ревизия
c8ffe41808

+ 1 - 0
Other/CMakeLists.txt

@@ -22,6 +22,7 @@ macro(deploy_others _module_prefix _module_name)
     set_property(TARGET ${_module_name} PROPERTY FOLDER "other/")
 
 endmacro(deploy_others)
+add_definitions(-DRVC_VERSION_STR="${RVC_VERSION}")
 
 add_subdirectory(libpublicFun)
 add_subdirectory(acmstrdec)

+ 2 - 0
Other/liblog4rvcother/CMakeLists.txt

@@ -13,6 +13,8 @@ set(${MODULE_PREFIX}_SRCS
     log4link.cpp
     )
 
+add_definitions(-DUSE_SKYEYELOG)
+
 
 add_library(${MODULE_NAME} SHARED ${${MODULE_PREFIX}_SRCS})
 target_include_directories(${MODULE_NAME} 

+ 12 - 2
Other/liblog4rvcother/log4cplus_helper.cpp

@@ -2,6 +2,7 @@
 #include <iostream>
 #include <string>
 #include <string.h>
+#include <mutex>
 
 #include "log4link.h"
 #include "skyeyeLog/skyeyeLog.h"
@@ -11,7 +12,7 @@
 #define WIN32_CONSOLE 1
 #endif
 
-#define USE_SKYEYELOG
+
 
 using namespace log4cplus;
 using namespace log4cplus::helpers;
@@ -302,7 +303,9 @@ namespace cmb {
 			_append_none = NULL;
 			_append_socket = NULL;
 			log4cplus::Logger::shutdown();
+#ifndef USE_SKYEYELOG
 			_upload_helper.unitialize();
+#endif
 			_initialized = false;
 		}
 	}
@@ -517,7 +520,7 @@ namespace cmb {
     void log4cplus_helper::initialize_linklog(const log_init_config& config)
     {
 #ifdef USE_SKYEYELOG
-
+		CreateDefaultLogger(config.terminalno, RVC_VERSION_STR, config.dev_name, "100");
 #else
 		_upload_helper.initialize(config);
 #endif
@@ -526,6 +529,12 @@ namespace cmb {
 
     void log4cplus_helper::loglink(LOG_LEVEL_E level, vtm_string text)
     {
+#ifdef USE_SKYEYELOG
+		static std::mutex logMtx;
+		logMtx.lock();
+		GetDefaultLogger()(level, text.c_str());
+		logMtx.unlock();
+#else
         if (_upload_helper.is_initialized()) {
 			/*LOG_LEVEL_DEBUG = 0, LOG_LEVEL_INFO = 1, LOG_LEVEL_WARN = 2, LOG_LEVEL_ERROR = 3, LOG_LEVEL_FATAL = 4*/
 			const int converted_ll = ((int)(level)+1) * 10000;
@@ -537,5 +546,6 @@ namespace cmb {
 				_upload_helper.pinst_log_producer_client_add_log(_upload_helper._client, &logitem, 1, cur_time);
 			}
         }
+#endif
     }
 }

+ 2 - 0
Other/liblog4rvcother/log4cplus_helper.h

@@ -176,7 +176,9 @@ namespace cmb {
 		int _log_level;
 
 		bool _initialize_uploaded;
+#ifndef USE_SKYEYELOG
 		upload_helper _upload_helper;
+#endif
 	};
 }
 

+ 1 - 0
Other/libpublicFun/CMakeLists.txt

@@ -54,6 +54,7 @@ target_include_directories(${MODULE_NAME} PRIVATE
     )
 
 target_compile_definitions(${MODULE_NAME} PUBLIC "LIBPUBLIC_EXPORTS")
+add_definitions(-DPUBLIC_EXPORTS)
 
 target_link_directories(${MODULE_NAME} PRIVATE ${CONAN_LIB_DIRS_BOOST} ${CONAN_LIB_DIRS_JSONCPP})
 

+ 6 - 111
Other/libpublicFun/skyeyeLog/skyeyeLog.cpp

@@ -12,116 +12,7 @@
 #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)
@@ -537,7 +428,7 @@ skyeye_logger& skyeye_logger::setVtmCode(std::string t_VtmCode)
 	return *this;
 }
 
-void skyeye_logger::operator()(LOG_LEVEL_E t_level, LOG_TYPE_E t_type, const char* str, ...)
+void skyeye_logger::operator()(LOG_LEVEL_E t_level, const char* str, ...)
 {
 	if (m_msg != nullptr)
 	{
@@ -559,7 +450,6 @@ void skyeye_logger::operator()(LOG_LEVEL_E t_level, LOG_TYPE_E t_type, const cha
 
 
 		m_msg->Level = t_level;
-		m_msg->Type = t_type;
 		m_msg->ResultMsg = &buf[0];
 
 		skyeye_sender::getInstance().LogToSender(m_msg);
@@ -595,3 +485,8 @@ void CreateDefaultLogger(std::string terminalno, std::string version, std::strin
 	skyeye_sender::getInstance().InitSender(SpDefine::endpoint_env, SpDefine::topicSys);
 
 }
+
+skyeye_logger& GetDefaultLogger()
+{
+	return skyeye_logger::getDefaultLogger();
+}

+ 114 - 1
Other/libpublicFun/skyeyeLog/skyeyeLog.h

@@ -16,7 +16,120 @@ public:
 	std::string m_version;
 };
 
+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 PUBLIC_API 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, 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
 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.
-PUBLIC_API 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);
+
+PUBLIC_API skyeye_logger& GetDefaultLogger();

+ 1 - 0
Tool/CMakeLists.txt

@@ -7,6 +7,7 @@ set(WINPR_LIB winpr)
 set(MODULE_BASE_LIBS ${SPBASE_LIB} ${TOOLKIT_LIB})
 set(MODULE_BASE_ALL_LIBS ${MODULE_BASE_LIBS} ${RVCCOMM_LIB}) 
 
+
 if(NOT MSVC)
     list(APPEND MODULE_BASE_LIBS ${WINPR_LIB})
 endif(NOT MSVC)