| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #ifndef SYSTEM_LOG_MANAGER_H |
| | | #define SYSTEM_LOG_MANAGER_H |
| | | |
| | | #include <string> |
| | | #include <vector> |
| | | #include <mutex> |
| | | #include "Database.h" |
| | | |
| | | // ç³»ç»æ¥å¿ç®¡çç±» |
| | | class SystemLogManager { |
| | | public: |
| | | // æ¥å¿ç±»åå®ä¹ |
| | | enum class LogType { |
| | | Info, |
| | | Error, |
| | | Operation, |
| | | Unknown |
| | | }; |
| | | |
| | | // è·ååä¾å®ä¾ |
| | | static SystemLogManager& getInstance(); |
| | | |
| | | // è®¾ç½®æ°æ®åºè¿æ¥ |
| | | void setDatabase(BL::Database* db); |
| | | |
| | | // åå§åæ¥å¿è¡¨ |
| | | bool initializeLogTable(); |
| | | |
| | | // æ·»å æ¥å¿ |
| | | bool log(LogType logType, const std::string& event); |
| | | bool log(LogType logType, const std::string& event, const std::string& username); |
| | | |
| | | // è·åæ¥å¿å
容 |
| | | std::vector<std::vector<std::string>> getLogs(int startPosition = -1, int count = -1); |
| | | |
| | | // è·åçéåçæ¥å¿æ°æ® |
| | | std::vector<std::vector<std::string>> getFilteredLogs( |
| | | const std::string& logType, |
| | | const std::string& username, |
| | | const std::string& description, |
| | | const std::string& startTime, |
| | | const std::string& endTime, |
| | | int pageNumber, |
| | | int pageSize); |
| | | |
| | | // è·åç¬¦åæ¡ä»¶çæ¥å¿æ»æ° |
| | | int getTotalLogCount( |
| | | const std::string& logType, |
| | | const std::string& username, |
| | | const std::string& description, |
| | | const std::string& startTime, |
| | | const std::string& endTime); |
| | | |
| | | // æ¸
çè¶
è¿æå®å¤©æ°çæ§æ¥å¿ |
| | | void cleanOldLogs(int daysToKeep = 30); |
| | | |
| | | // è½¬æ¢æ¥å¿ç±»å为å符串 |
| | | static std::string logTypeToString(LogType logType); |
| | | |
| | | private: |
| | | // æé 彿°åææå½æ° |
| | | SystemLogManager(); |
| | | ~SystemLogManager(); |
| | | |
| | | // ç¦æ¢æ·è´åèµå¼ |
| | | SystemLogManager(const SystemLogManager&) = delete; |
| | | SystemLogManager& operator=(const SystemLogManager&) = delete; |
| | | |
| | | // æ°æ®åºè¿æ¥ |
| | | BL::Database* m_pDB = nullptr; |
| | | |
| | | // 线ç¨å®å
¨é |
| | | static std::mutex m_mutex; |
| | | }; |
| | | |
| | | #endif // SYSTEM_LOG_MANAGER_H |