skyeyeLog.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #include <log_define.h>
  2. #include <string>
  3. #include "../publicExport.h"
  4. class Link_const
  5. {
  6. public:
  7. std::string m_terminalNo;
  8. std::string m_entityName;
  9. std::string m_item; //对应于天眼item字段,即实体id
  10. std::string m_cmptId;
  11. std::string m_cmptName;
  12. std::string m_serviceUnitId;
  13. std::string m_deployUnitId;
  14. std::string m_version;
  15. };
  16. class Link_private {
  17. public:
  18. LOG_LEVEL_E Level;
  19. LOG_TYPE_E Type;
  20. std::string ResultCode;
  21. std::string TraceID;
  22. std::string ResultMsg;
  23. std::string LogCode;
  24. std::string API;
  25. long BeginTime;
  26. long EndTime;
  27. long CostTime;
  28. std::string BussID;
  29. std::string TipMsg;
  30. std::string SourceType;
  31. std::string VtmCode;
  32. std::string recordTime;
  33. public:
  34. Link_private(LOG_LEVEL_E t_level, LOG_TYPE_E t_type)
  35. : Level(t_level), Type(t_type), BeginTime(0), EndTime(0), CostTime(0), ResultCode("SUC0000")
  36. {
  37. TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = recordTime = VtmCode = "";
  38. }
  39. std::string get_baseLogType() const {
  40. if (Level == LOG_LEVEL_DEBUG)
  41. return "DEBUG";
  42. else if (Level == LOG_LEVEL_INFO)
  43. return "INFO";
  44. else if (Level == LOG_LEVEL_WARN)
  45. return "WARN";
  46. else if (Level == LOG_LEVEL_ERROR)
  47. return "ERROR";
  48. else if (Level == LOG_LEVEL_FATAL)
  49. return "PERFORMANCE";
  50. else
  51. return "INFO";
  52. }
  53. std::string get_LogFile() const {
  54. if (Level == LOG_LEVEL_DEBUG)
  55. return "SD";
  56. else if (Level == LOG_LEVEL_INFO)
  57. return "SI";
  58. else if (Level == LOG_LEVEL_WARN)
  59. return "SW";
  60. else if (Level == LOG_LEVEL_ERROR)
  61. return "SE";
  62. else if (Level == LOG_LEVEL_FATAL)
  63. return "SF";
  64. else
  65. return "SI";
  66. }
  67. std::string get_LogType() const {
  68. if (Level == LOG_LEVEL_DEBUG)
  69. return "SYSTEM_DEBUG";
  70. else if (Level == LOG_LEVEL_INFO)
  71. return "SYSTEM_INFO";
  72. else if (Level == LOG_LEVEL_WARN)
  73. return "SYSTEM_WARN";
  74. else if (Level == LOG_LEVEL_ERROR)
  75. return "SYSTEM_ERROR";
  76. else if (Level == LOG_LEVEL_FATAL)
  77. return "SYSTEM_PERFORMANCE";
  78. else
  79. return "SYSTEM_INFO";
  80. }
  81. };
  82. class PUBLIC_API skyeye_logger {
  83. public:
  84. static skyeye_logger& getDefaultLogger();
  85. //用户、系统日志均必填,设置日志级别
  86. skyeye_logger& setLogLevel(LOG_LEVEL_E t_level);
  87. //用户、系统日志均必填,设置日志类型
  88. skyeye_logger& setLogType(LOG_TYPE_E t_type);
  89. //用户、系统日志均必填,交易处理结果代码,0表示处理成功,其他表示失败,可为系统本身的错误码,也可为后台系统返回的错误码
  90. skyeye_logger& setResultCode(std::string t_ResultCode);
  91. //用户、系统日志均必填,业务跟踪ID, 32字节长度的字符串,唯一识别每笔请求
  92. skyeye_logger& setTraceID(std::string t_TraceID);
  93. //用户、系统日志LOG_LEVEL_WARN以上必填
  94. //交易处理结果信息,包括成功与失败信息,可为系统本身的成功/失败信息,也可为后台系统返回的成功/失败信息.
  95. skyeye_logger& setResultMsg(std::string t_ResultMsg);
  96. //用户日志必填,日志码
  97. //终端中标识各个交易如读卡、读取身份证等。如果终端由于客观原因无法识别交易场景,则可字段由上游传入。
  98. skyeye_logger& setLogCode(std::string t_LogCode);
  99. skyeye_logger& setAPI(std::string t_API);//用户日志必填,请求路径/接口名称.
  100. skyeye_logger& setBussID(std::string t_BussID);//用户日志必填,请求业务ID
  101. skyeye_logger& setTipMsg(std::string t_TipMsg);//用户日志LOG_LEVEL_WARN以上必填,直接向客户展示的报错信息.
  102. skyeye_logger& setSourceType(std::string t_SourceType);//系统日志LOG_LEVEL_FATAL必填,异常来源类型
  103. skyeye_logger& setBeginTime(long t_BeginTime);//用户日志必填, 请求发送/接收时间
  104. skyeye_logger& setEndTime(long t_EndTime);//用户日志必填, 响应接收 / 应答时间
  105. skyeye_logger& setCostTime(long t_costTime);//消耗时间,自定义字段,单位ms
  106. skyeye_logger& setVtmCode(std::string t_VtmCode);//VtmCode,记录原告警
  107. void operator () (LOG_LEVEL_E t_level, const char* str, ...);
  108. private:
  109. Link_private* m_msg;
  110. public:
  111. //logger default param
  112. Link_const m_constParam;
  113. private:
  114. skyeye_logger() {};
  115. skyeye_logger(const skyeye_logger&) = delete;
  116. const skyeye_logger& operator=(const skyeye_logger&) = delete;
  117. };
  118. //CreateDefaultLogger with all params
  119. PUBLIC_API void CreateDefaultLogger(std::string logEndpoint, std::string logTopic, std::string tokenEndpoint, std::string channelId, std::string tokenSecret, Link_const constParam);
  120. //CreateDefaultLogger with neccessary params, other params use default values.
  121. PUBLIC_API void CreateDefaultLogger(std::string terminalno, std::string version, std::string entityName, std::string itemId);
  122. PUBLIC_API skyeye_logger& GetDefaultLogger();