|
- #pragma once
- #include "StdAfx.h"
- #include <unordered_map>
- #include <process.h>
-
- #define WRITE_LOG Commend::WriteLog
- #define LOG_LEVEL_DEBUG Commend::ENUM_LOG_LEVEL_DEBUG //调试信息
- #define LOG_LEVEL_RUNRUN Commend::ENUM_LOG_LEVEL_RUN //代码业务逻辑
- #define LOG_LEVEL_RUNRUNERROR Commend::ENUM_LOG_LEVEL_RUNERROR //代码业务逻辑错误
- #define LOG_LEVEL_ERROR Commend::ENUM_LOG_LEVEL_ERROR //代码的错误
- #define WELCOME_LOG_INFO _T("\r\n################日志记录开始################\r\n")
-
-
- class Commend
- {
- private:
- // 日志写入器的状态
- enum enLogStatus
- {
- ENUM_LOG_INIT,
- ENUM_LOG_RUN,
- ENUM_LOG_EXITING,
- ENUM_LOG_EXITED,
- ENUM_LOG_INVALID,
- };
- // 日志级别
- enum enLogInfoLevel
- {
- ENUM_LOG_LEVEL_DEBUG = 0,
- ENUM_LOG_LEVEL_RUN,
- ENUM_LOG_LEVEL_RUNERROR,
- ENUM_LOG_LEVEL_ERROR,
- };
- static HANDLE m_hThread; // 线程句柄
- static unsigned m_uiThreadID; // 线程id
- static enLogStatus m_enStatus; // 当前log写入器的状态
- static bool m_bRun; // 当前log写入器是否结束
- static int m_iLogLevel; // 当前写日志的级别
- //static HANDLE m_hMapLogFile; //映射到共享内存中
- //static LPTSTR m_psMapAddr; //映射到共享内存到程序内存的地址
- static CString m_Patch;
- public:
- Commend();
- ~Commend();
- //锁
- static CCriticalSection m_CriticalSection; //线程锁
- //参数转成字符串
- static CString ToString(WORD wMainCmdID, WORD wCmdTable, const void* pBuffer);
- //名字
- static CString ToName(WORD wMainCmdID, WORD wCmdTable, PVOID pGetGameString = NULL);
- //名字
- static CString ToNameEx(WORD wMainCmdID, WORD wCmdTable, const void* pBuffer, int iLen, void* pGetGameString = NULL);
- //打印通讯日志
- static void ToShow(VOID* Frame, WORD wMainCmdID, WORD wCmdTable, const void* pBuffer, int iLen, DWORD dTablePrivate = 0, DWORD dUserID = 0, PVOID pGetGameString = NULL,bool bSend = true);
-
- public:
- //日志信息
- static std::unordered_map<DWORD, CString> Log; //桌子ID,内容
- //添加日志
- static void AddLog(DWORD dPriateTable, CString LogText);
- //获取日志
- static std::unordered_map<DWORD, CString> GetLog();
- //运行
- static unsigned __stdcall LogRuns(void* pParam);
-
- static CString& GetCurTimeStr();
- static int WriteUnicodeHeadToFile(CStdioFile* pFile);
- };
-
|