123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #include <log_define.h>
- #include <string>
- #include "../publicExport.h"
- class Link_const
- {
- public:
- std::string m_terminalNo;
- std::string m_entityName;
- std::string m_item; //对应于天眼item字段,即实体id
- std::string m_cmptId;
- std::string m_cmptName;
- std::string m_serviceUnitId;
- std::string m_deployUnitId;
- 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 skyeye_logger& GetDefaultLogger();
|