诸暨麻将添加redis
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

179 line
4.5 KiB

  1. #ifndef TRACE_SERVICE_HEAD_FILE
  2. #define TRACE_SERVICE_HEAD_FILE
  3. #pragma once
  4. #include "KernelEngineHead.h"
  5. //////////////////////////////////////////////////////////////////////////////////
  6. //Spdlog
  7. #define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_TRACE //在包含 *spdlog.h"之前,添加 SPDLOG_ACTIVE_LEVEL 宏定义可以设置期望的日志级别
  8. #include "../../Spdlog/spdlog/spdlog.h"
  9. #include <direct.h>
  10. #include <chrono>
  11. #include <unordered_map>
  12. class KERNEL_ENGINE_CLASS Logger
  13. {
  14. public:
  15. static void ShutDown();
  16. static Logger& GetInstance();
  17. std::shared_ptr<spdlog::logger> GetTableLogger(int tableId);
  18. void DeleteTableLogger(int tableId);
  19. std::shared_ptr<spdlog::logger>& GetLogger()
  20. {
  21. return logger_;
  22. };
  23. bool InitDefaultLog(std::string logger_name, std::string file_name, spdlog::level::level_enum log_level = spdlog::level::trace);
  24. private:
  25. Logger()
  26. {
  27. //InitDefaultLog("klog", "daily_log.log");
  28. //logger_ = spdlog::default_logger();
  29. };
  30. ~Logger();
  31. Logger(const Logger&) = delete;
  32. Logger& operator=(const Logger&) = delete;
  33. private:
  34. std::unordered_map<int, std::shared_ptr<spdlog::logger>> tablelogger_;//桌子日志
  35. std::shared_ptr<spdlog::logger> logger_; //默认全局日志
  36. std::string logfile_dir_;
  37. };
  38. #define LTrace(...) SPDLOG_LOGGER_TRACE(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  39. #define LDebug(...) SPDLOG_LOGGER_DEBUG(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  40. #define LInfo(...) SPDLOG_LOGGER_INFO(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  41. #define LWarn(...) SPDLOG_LOGGER_WARN(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  42. #define LError(...) SPDLOG_LOGGER_ERROR(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  43. #define LCritical(...) SPDLOG_LOGGER_CRITICAL(Logger::GetInstance().GetLogger(), __VA_ARGS__)
  44. //追踪服务
  45. class KERNEL_ENGINE_CLASS CTraceService
  46. {
  47. //函数定义
  48. protected:
  49. //构造函数
  50. CTraceService();
  51. //服务配置
  52. public:
  53. //设置服务
  54. static bool SetTraceService(IUnknownEx* pIUnknownEx);
  55. //获取服务
  56. static VOID* GetTraceService(const IID& Guid, DWORD dwQueryVer);
  57. //获取服务
  58. static VOID* GetTraceServiceManager(const IID& Guid, DWORD dwQueryVer);
  59. //状态管理
  60. public:
  61. //追踪状态
  62. static bool IsEnableTrace(enTraceLevel TraceLevel);
  63. //追踪控制
  64. static bool EnableTrace(enTraceLevel TraceLevel, bool bEnableTrace);
  65. //功能函数
  66. public:
  67. //追踪信息
  68. static bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
  69. };
  70. //////////////////////////////////////////////////////////////////////////////////
  71. //追踪服务
  72. class KERNEL_ENGINE_CLASS CTraceServiceControl : public CRichEditCtrl, public ITraceService
  73. {
  74. //辅助变量
  75. protected:
  76. LONG m_lMaxLineCount; //最大行数
  77. LONG m_lReserveLineCount; //保留行数
  78. BYTE m_cbBuffer[MAX_ASYNCHRONISM_DATA]; //临时对象
  79. //组件变量
  80. protected:
  81. CWHDataQueue m_DataQueue; //数据队列
  82. CCriticalSection m_CriticalSection; //同步对象
  83. //函数定义
  84. public:
  85. //构造函数
  86. CTraceServiceControl();
  87. //析构函数
  88. virtual ~CTraceServiceControl();
  89. //基础接口
  90. public:
  91. //释放对象
  92. virtual VOID Release() { return; }
  93. //接口查询
  94. virtual VOID* QueryInterface(const IID& Guid, DWORD dwQueryVer);
  95. //信息接口
  96. public:
  97. //追踪信息
  98. virtual bool TraceString(LPCTSTR pszString, enTraceLevel TraceLevel);
  99. //重载函数
  100. protected:
  101. //绑定函数
  102. virtual VOID PreSubclassWindow();
  103. //功能函数
  104. public:
  105. //加载消息
  106. bool LoadMessage(LPCTSTR pszFileName);
  107. //保存信息
  108. bool SaveMessage(LPCTSTR pszFileName);
  109. //设置参数
  110. bool SetParameter(LONG lMaxLineCount, LONG lReserveLineCount);
  111. //辅助函数
  112. private:
  113. //配置服务
  114. VOID InitializeService();
  115. //获取颜色
  116. COLORREF GetTraceColor(enTraceLevel TraceLevel);
  117. //插入字串
  118. bool InsertString(LPCTSTR pszString, CHARFORMAT2& CharFormat);
  119. //回调函数
  120. private:
  121. //加载回调
  122. static DWORD CALLBACK LoadCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG* pcb);
  123. //保存回调
  124. static DWORD CALLBACK SaveCallBack(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG* pcb);
  125. //菜单命令
  126. protected:
  127. //删除信息
  128. VOID OnClearAll();
  129. //全部选择
  130. VOID OnSelectAll();
  131. //拷贝字符
  132. VOID OnCopyString();
  133. //保存信息
  134. VOID OnSaveString();
  135. //删除字符
  136. VOID OnDeleteString();
  137. //消息映射
  138. protected:
  139. //建立消息
  140. INT OnCreate(LPCREATESTRUCT lpCreateStruct);
  141. //右键消息
  142. VOID OnRButtonDown(UINT nFlags, CPoint point);
  143. //追踪消息
  144. LRESULT OnTraceServiceMessage(WPARAM wParam, LPARAM lParam);
  145. DECLARE_MESSAGE_MAP()
  146. };
  147. //////////////////////////////////////////////////////////////////////////////////
  148. #endif