⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logalert.h

📁 此源代码只用于学习,不得用于其他商业活动 .
💻 H
字号:
/******************************************************************************************/

/*** Name				: logalert.h													***/

/***																					***/

/*** Description		: 日志告警接口,适用于所有UNIX C++程序							***/

/***																					***/

/*** Copyright			: LinkAge Co.													***/

/***																					***/

/*** Begin Time			: 2001/02/14													***/

/***																					***/

/*** Last Change Time	: 2001/11/30													***/

/***																					***/

/******************************************************************************************/



#ifndef	_LOGALERT_H_

#define	_LOGALERT_H_



#ifndef	PATHLENGTH

#define	PATHLENGTH	256

#endif



#undef	STRING_LEN

#define	STRING_LEN	1024



//用户名称,ip地址,主机名称,操作对象,操作编码,操作,操作结果,操作开始日期时间,操作结束日期时间

//内部添加了通道号

struct S_OperInfo

{

	char szUser[STRING_LEN];

	char szIp[STRING_LEN];

	char szHostName[STRING_LEN];

	char szModelName[STRING_LEN];

	char szOperCode[STRING_LEN];

	char szOperation[STRING_LEN];

	char szOperResult[STRING_LEN];

	char szStartDateTime[STRING_LEN];

	char szEndDateTime[STRING_LEN];

	char szChannelCode[STRING_LEN];

	S_OperInfo()

	{

		memset(szUser, 0, sizeof(szUser));

		memset(szIp, 0, sizeof(szIp));

		memset(szHostName, 0, sizeof(szHostName));

		memset(szModelName, 0, sizeof(szModelName));

		memset(szOperCode, 0, sizeof(szOperCode));

		memset(szOperation, 0, sizeof(szOperation));

		memset(szOperResult, 0, sizeof(szOperResult));

		memset(szStartDateTime, 0, sizeof(szStartDateTime));

		memset(szEndDateTime, 0, sizeof(szEndDateTime));

		memset(szChannelCode, 0, sizeof(szChannelCode));

	}

};



class	C_LogAlert

{

public:

	//初始化记录启停信息的通道

	bool InitForInfo(const char *pszPath, const char *pszModelName,	const char *pszChannelCode);



	//记录进程启动信息

	bool Start(const char *pszOperCode);



	//记录进程退出信息

	bool Stop(const char *pszOperCode);



	/*初始化通道   日志路径            唯一通道标识*/

	bool Initialize(const char *pchPath,const char *pchChannelName);



	/*写日志      日志,写文件时会自动加上'\n',无必要在此对象中加'\n'*/

	bool Write(const char *pchLogAlert);



	/*提交告警日志*/

	void Commit(void);



	/*写告警*/

	bool InsertAlert(const char *Model_Code, const char *Alert_Level, const char *Alert_Code,

				const char *Channel_Code, const char *Oper_Object);

	

	/*写信息点日志*/

	bool InsertInfoPoint(const char *InfoCode, const char *Result1, const char *Result2 = NULL);



	/*构造函数*/

	C_LogAlert(void);



	/*解构函数*/

	~C_LogAlert(void);

private:

	//记录操作信息

	bool WriteOperLog(void);

private:

	FILE *Stream;

	char pchCurrentPath[PATHLENGTH],pchCurrentChannelName[PATHLENGTH];

	char pchCurrentFileName[PATHLENGTH],pchTempFileName[PATHLENGTH];

	char szHostName[STRING_LEN], szHostIp[STRING_LEN];

	S_OperInfo *m_pOperInfo;

};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -