浏览代码

Z991239-5462 #comment fea: change openLogSender's param, add a filter of LogType

chenliangyu 1 年之前
父节点
当前提交
40e852ea5c

+ 2 - 0
Module/include/EventCode.h

@@ -698,6 +698,8 @@ ERROR_ACCESSAUTH_CONNECT_ACS_x}
 #define WARN_GUICONSOLE_PERFORMANCE_SNAPSHOT	0x50820401
 //performance failed:Process32First
 #define WARN_GUICONSOLE_PERFORMANCE_PROCESS32FIRST	0x50820402
+//openLogSender not vaild input
+#define WARN_GUICONSOLE_LOGSENDER_UNVAILD_INPUT	0x50820501
 
 
 

+ 11 - 0
Module/mod_chromium/ReadMe.md

@@ -0,0 +1,11 @@
+# BeginSession:
+* {"transID":12,"entity":"CenterSetting","functionName":"","class":"CenterSettingService","messageType":1}
+
+# Register:
+* {"transID":8,"entity":"ResourceWatcher","class":"ResourceWatcherService","messageType":6}
+
+# Request:
+* {"entity":"ResourceWatcher","class":"ResourceWatcherService","transID":1,"methodID":6,"signature":651862197,"timeout":60000,"messageType":3,"filter":1,"sessionID":190924109}
+
+# RequestAck:
+* {"messageType":4,"sessionID":190924110,"transID":3,"isEnd":1,"errorCode":0,"errorMsg":"","errMsg":"密钥集丢失(私钥为空),请重置秘钥进行初始化","reserved1":"","reserved2":"","{e12a3dc0-3a0b-47c4-a8c3-75190a42ae68}":"{\"errMsg\":\"密钥集丢失(私钥为空),请重置秘钥进行初始化\",\"reserved1\":\"\",\"reserved2\":\"\"}

+ 2 - 2
Module/mod_guiconsole/GUIConsole_def_g.h

@@ -44,13 +44,13 @@ namespace GUIConsole {
 
 struct GUIConsoleService_OpenLogSender_Req
 {
-	int reserved1;
+	CSimpleStringA LogType;
 	int reserved2;
 	CSimpleStringA reserved3;
 
 	void Serialize(SpBuffer &Buf)
 	{
-		auto & buf = Buf & reserved1 & reserved2 & reserved3;
+		auto & buf = Buf & LogType & reserved2 & reserved3;
 	}
 
 };

+ 2 - 1
Module/mod_guiconsole/GUIConsole_msg_g.h

@@ -40,11 +40,12 @@ struct LogInfo
 	int userCode;
 	CSimpleStringA timeStr;
 	CSimpleStringA entityName;
+	CSimpleStringA LogType;
 	CSimpleStringA message;
 
 	void Serialize(SpBuffer &Buf)
 	{
-		auto & buf = Buf & sysError & userCode & timeStr & entityName & message;
+		auto & buf = Buf & sysError & userCode & timeStr & entityName & LogType & message;
 	}
 
 };

+ 3 - 2
Module/mod_guiconsole/GuiConsole.xml

@@ -6,8 +6,8 @@
 		<!-- 定义一个名为 OpenLogSender 的双向通信,用于打开日志发送功能 -->
 		<twoway name="OpenLogSender" overlap="true">
 			<req>
-				<!-- 预留参数1,类型为整数 -->
-				<param name="reserved1" type="int"/>
+				<!-- 期望展示的类型,有效输入包含Ignore、Event、Warn、Error-->
+				<param name="LogType" type="string"/>
 				<!-- 预留参数2,类型为整数 -->
 				<param name="reserved2" type="int"/>
 				<!-- 预留参数3,类型为字符串 -->
@@ -199,6 +199,7 @@
 		<param name="userCode" type="int"/>
 		<param name="timeStr" type="string"/>
 		<param name="entityName" type="string"/>
+		<param name="LogType" type="string"/>
 		<param name="message" type="string"/>
 	</message>
 

+ 39 - 0
Module/mod_guiconsole/guiconsole_define.cpp

@@ -1,6 +1,7 @@
 #include "guiconsole_define.h"
 #include <winpr/sysinfo.h>
 #include <EventCode.h>
+#include <unordered_map>
 
 std::string GenerateTimeStr()
 {
@@ -246,3 +247,41 @@ std::pair<long, std::string> PollProcessList(long UpdateTime, system_monitor_sta
 	return std::make_pair(0, "");
 }
 
+static const std::unordered_map<LogTypeEnum, std::string> logTypeEnumToString = {
+	{LogTypeEnum::Log_Ignore, "Ignore"},
+	{LogTypeEnum::Log_Event, "Event"},
+	{LogTypeEnum::Log_Warning, "Warning"},
+	{LogTypeEnum::Log_Error, "Error"},
+	{LogTypeEnum::Log_Debug, "Debug"},
+	{LogTypeEnum::Log_Fatal, "Fatal"},
+	{LogTypeEnum::Log_Notify, "Notify"}
+};
+
+static const std::unordered_map<std::string, LogTypeEnum> stringToLogTypeEnum = {
+	{"Ignore", LogTypeEnum::Log_Ignore},
+	{"Event", LogTypeEnum::Log_Event},
+	{"Warning", LogTypeEnum::Log_Warning},
+	{"Error", LogTypeEnum::Log_Error},
+	{"Debug", LogTypeEnum::Log_Debug},
+	{"Fatal", LogTypeEnum::Log_Fatal},
+	{"Notify", LogTypeEnum::Log_Notify}
+};
+
+std::string LogTypeEnumToString(LogTypeEnum logType) {
+	auto it = logTypeEnumToString.find(logType);
+	if (it != logTypeEnumToString.end()) {
+		return it->second;
+	}
+	else {
+		return "Unknown";
+	}
+}
+
+LogTypeEnum StringToLogTypeEnum(const std::string& logTypeStr) {
+	auto it = stringToLogTypeEnum.find(logTypeStr);
+	if (it != stringToLogTypeEnum.end()) {
+		return it->second;
+	}
+	else
+		return LogTypeEnum::Log_Warning;
+}

+ 4 - 1
Module/mod_guiconsole/guiconsole_define.h

@@ -157,4 +157,7 @@ struct system_monitor_status {
 
 std::pair<long, std::string> PollProcessList(long UpdateTime, system_monitor_status& curStatus);
 
-std::string GenerateTimeStr();
+std::string GenerateTimeStr();
+
+std::string LogTypeEnumToString(LogTypeEnum logType);
+LogTypeEnum StringToLogTypeEnum(const std::string& logTypeStr);

+ 2 - 2
Module/mod_guiconsole/mod_GuiConsole.h

@@ -58,7 +58,7 @@ public:
 	virtual void OnPreClose(EntityCloseCauseEnum eCloseCause,CSmartPointer<ITransactionContext> pTransactionContext) ;
 	
 
-	std::pair<DWORD, std::string> openLogSender();
+	std::pair<DWORD, std::string> openLogSender(SpReqAnsContext<GUIConsoleService_OpenLogSender_Req, GUIConsoleService_OpenLogSender_Ans>::Pointer ctx);
 	std::pair<DWORD, std::string> closeLogSender();
 	std::pair<DWORD, std::string> openEntityMonitor();
 	std::pair<DWORD, std::string> closeEntityMonitor();
@@ -100,7 +100,7 @@ public:
 
 private:
 	bool m_isOpenLogSender, m_isOpenEntityMonitor, m_isOpenPerformanceSender;
-	int m_performanceSenderFrequence;
+	int m_performanceSenderFrequence, m_sendLogType;
 	CUUID m_logSubID;
 	std::thread thread_performanceSend;
 };

+ 20 - 6
Module/mod_guiconsole/mod_guiconsole.cpp

@@ -39,7 +39,10 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nLogI
 		msg.userCode = dwUserCode;
 		msg.timeStr = GenerateTimeStr().c_str();
 		msg.entityName = pszEntityName;
+		msg.LogType = LogTypeEnumToString(eLogType).c_str();
 		msg.message = str;
+
+
 		SpSendBroadcast(GetFunction(), eMsg_LogInfo, eMsgSig_LogInfo, msg);
 	}
 }
@@ -77,7 +80,7 @@ void CGUIConsoleEntity::OnTimeout(DWORD dwTimerID)
 {
 }
 
-std::pair<DWORD, std::string> CGUIConsoleEntity::openLogSender()
+std::pair<DWORD, std::string> CGUIConsoleEntity::openLogSender(SpReqAnsContext<GUIConsoleService_OpenLogSender_Req, GUIConsoleService_OpenLogSender_Ans>::Pointer ctx)
 {
 	if ((__int64)m_logSubID != 0)
 	{
@@ -87,7 +90,17 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::openLogSender()
 	}
 	else
 	{
-		auto rc = GetFunction()->SubscribeLog(m_logSubID, this, Log_Ignore, Severity_None, Error_IgnoreAll, -1, NULL, false);
+		auto logType = StringToLogTypeEnum(ctx->Req.LogType.GetData());
+		//check valid input for this function
+		if (logType != LogTypeEnum::Log_Ignore && logType != LogTypeEnum::Log_Event && logType != LogTypeEnum::Log_Warning && logType != LogTypeEnum::Log_Error)
+		{
+			LogWarn(SeverityLevelEnum::Severity_Middle, ErrorCodeEnum::Error_NotSupport, WARN_GUICONSOLE_LOGSENDER_UNVAILD_INPUT,
+				CSimpleString::Format("openLogSender: not valid input: %s, use default warning", ctx->Req.LogType.GetData()).GetData());
+			m_sendLogType = LogTypeEnum::Log_Warning;
+		}
+		else
+			m_sendLogType = logType;
+		auto rc = GetFunction()->SubscribeLog(m_logSubID, this, (LogTypeEnum)m_sendLogType, Severity_None, Error_IgnoreAll, -1, NULL, false);
 		m_isOpenLogSender = (rc == ErrorCodeEnum::Error_Succeed);
 		return std::pair<DWORD, std::string>(rc, "");
 	}
@@ -234,7 +247,7 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::openPerformanceSender(SpReqAnsC
 				dst.handleNumArr[i] = curStatus.processList[i].ThreadCount;
 			}
 		}
-	}
+	};
 
 	return std::pair<DWORD, std::string>(Error_Succeed, "");
 }
@@ -303,7 +316,8 @@ std::pair<DWORD, std::string> CGUIConsoleEntity::VTM_controlEntity(SpReqAnsConte
 }
 
 CGUIConsoleEntity::CGUIConsoleEntity()
-	:m_isOpenLogSender(false), m_isOpenEntityMonitor(false), m_isOpenPerformanceSender(false)
+	:m_isOpenLogSender(false), m_isOpenEntityMonitor(false), m_isOpenPerformanceSender(false),
+	m_sendLogType(LogTypeEnum::Log_Warning)
 {
 }
 
@@ -313,7 +327,7 @@ CGUIConsoleEntity::~CGUIConsoleEntity()
 
 void CGUIConsoleSession::Handle_OpenLogSender(SpReqAnsContext<GUIConsoleService_OpenLogSender_Req, GUIConsoleService_OpenLogSender_Ans>::Pointer ctx)
 {
-	auto ret = m_pEntity->openLogSender();
+	auto ret = m_pEntity->openLogSender(ctx);
 	ctx->Answer((ErrorCodeEnum)ret.first, (ErrorCodeEnum)ret.first);
 }
 
@@ -337,7 +351,7 @@ void CGUIConsoleSession::Handle_CloseEntityMonitor(SpReqAnsContext<GUIConsoleSer
 
 void CGUIConsoleSession::Handle_OpenPerformanceSender(SpReqAnsContext<GUIConsoleService_OpenPerformanceSender_Req, GUIConsoleService_OpenPerformanceSender_Ans>::Pointer ctx)
 {
-	auto ret = m_pEntity->openPerformanceSender();
+	auto ret = m_pEntity->openPerformanceSender(ctx);
 	ctx->Answer((ErrorCodeEnum)ret.first, (ErrorCodeEnum)ret.first);
 }