LHQLogAPI.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include <QString>
  3. #include <QLibrary>
  4. enum enLogType
  5. {
  6. ELT_Log_ALL = 0,
  7. // Debug.ini[system]Debug=1生效
  8. ELT_Log_Debug,
  9. // 错误日志,不自动删除和清空
  10. ELT_Log_Error,
  11. // 文件日志,就一个文件,超过10M自动清空,如记录xml,json的信息
  12. ELT_Log_File,
  13. // 一定会输出的日志
  14. // 操作日志,如点击按钮,按快捷键
  15. ELT_Log_Operator,
  16. // 仅仅主程序记录,按键日志
  17. ELT_Log_KeyDown,
  18. // 通用日志,无特殊标记
  19. ELT_Log_Common,
  20. };
  21. class CLHQLogApi
  22. {
  23. public:
  24. CLHQLogApi();
  25. ~CLHQLogApi();
  26. private:
  27. typedef int (*FunDoInitial)(const char* szLogName);
  28. typedef int (*FunDoWriteLog)(const char* szLogName, int nLogType, const char* szLog);
  29. typedef int (*FunDoWriteFileLog)(const char* szFilePath, const char* szLog);
  30. //获取是否开启了Debug模式: 0未开启, 1已开启
  31. typedef int (*FunGetDebug)();
  32. private:
  33. QLibrary m_QLib;
  34. FunDoInitial fnDoInitial;
  35. FunDoWriteLog fnDoWriteLog;
  36. FunDoWriteFileLog fnDoWriteFileLog;
  37. FunGetDebug fnGetDebug;
  38. public:
  39. int Load(QString file);
  40. public:
  41. int DoInitial(QString strLogName);
  42. // 为了适应,一个进程多模块日志的功能,需要给出Log名称
  43. int DoWriteLogEx(QString strLogName, int nLogType, QString strLog);
  44. int DoWriteFileLog(QString strLogFilePath, QString strLog);
  45. public:
  46. QString m_strLogName;
  47. int DoWriteLog(int nLogType, QString strLog);
  48. bool IsInDebugMode();
  49. };