From b7d44f76f6c85162bc0a51b0c48585f06786bdc4 Mon Sep 17 00:00:00 2001 From: 123 <123@example.com> Date: Sat, 21 Jun 2025 22:33:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=AE=B0=E5=BD=95=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Client/BattlefieldExplorationSystem | Bin 550544 -> 609696 bytes src/Client/BattlefieldExplorationSystem.pro | 8 +- src/Client/doc/README.md | 8 +- src/Client/doc/planning/task.md | 58 ++- src/Client/doc/technical/system_log_design.md | 322 ++++++++++++ src/Client/forms/main/MainWindow.ui | 221 ++------ .../include/ui/components/SystemLogPanel.h | 202 ++++++++ src/Client/include/ui/main/MainWindow.h | 9 + src/Client/include/utils/SystemLogger.h | 178 +++++++ src/Client/src/ui/components/DeviceCard.cpp | 17 +- .../src/ui/components/DeviceListPanel.cpp | 19 + .../src/ui/components/SystemLogPanel.cpp | 476 ++++++++++++++++++ src/Client/src/ui/dialogs/DeviceDialog.cpp | 6 + src/Client/src/ui/main/MainWindow.cpp | 93 +++- src/Client/src/utils/SystemLogger.cpp | 158 ++++++ 15 files changed, 1547 insertions(+), 228 deletions(-) create mode 100644 src/Client/doc/technical/system_log_design.md create mode 100644 src/Client/include/ui/components/SystemLogPanel.h create mode 100644 src/Client/include/utils/SystemLogger.h create mode 100644 src/Client/src/ui/components/SystemLogPanel.cpp create mode 100644 src/Client/src/utils/SystemLogger.cpp diff --git a/src/Client/BattlefieldExplorationSystem b/src/Client/BattlefieldExplorationSystem index e20da90cdec9e9f442ccb7a1949f34539ed87fd2..dc88f6110d7c0069775de09b066f28079fd30b0c 100755 GIT binary patch delta 249849 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�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%0AQ~J4;lY<>;P0}NX#%HF5 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[%2] %3 %4") + .arg(levelColor) + .arg(timestamp) + .arg(levelIcon) + .arg(message); +} +``` + +## 功能规格 + +### 核心功能 + +#### 1. 日志记录 +- **多级别支持**: Debug, Info, Warning, Error, Success +- **时间戳**: 精确到毫秒的时间记录 +- **颜色编码**: 不同级别使用不同颜色显示 +- **图标标识**: 直观的视觉识别 + +#### 2. 日志管理 +- **清空日志**: 一键清除所有日志记录 +- **暂停/恢复**: 暂停日志更新,便于查看 +- **级别过滤**: 只显示指定级别以上的日志 +- **行数限制**: 自动管理内存,限制最大行数 + +#### 3. 高级功能 +- **自动滚动**: 新日志自动滚动到底部 +- **搜索功能**: 在日志中搜索关键词 (可选) +- **导出功能**: 导出日志到文件 (可选) + +### 集成点 + +系统日志将集成到以下关键操作点: + +#### 1. 设备管理操作 +```cpp +// 设备添加 +SystemLogger::getInstance()->logInfo("设备添加成功: " + deviceName); + +// 设备连接 +SystemLogger::getInstance()->logSuccess("设备连接成功: " + deviceId); +SystemLogger::getInstance()->logError("设备连接失败: " + deviceId + " - " + errorMsg); + +// 设备删除 +SystemLogger::getInstance()->logInfo("设备删除: " + deviceName); +``` + +#### 2. 数据库操作 +```cpp +// 数据库连接 +SystemLogger::getInstance()->logSuccess("数据库连接成功"); +SystemLogger::getInstance()->logError("数据库连接失败: " + error); + +// 数据操作 +SystemLogger::getInstance()->logInfo("加载了 " + QString::number(count) + " 个设备"); +``` + +#### 3. 地图交互 +```cpp +// 地图操作 +SystemLogger::getInstance()->logInfo("地图初始化完成"); +SystemLogger::getInstance()->logSuccess("设备定位完成: " + deviceId); +``` + +#### 4. 系统事件 +```cpp +// 系统启动 +SystemLogger::getInstance()->logInfo("系统启动完成"); + +// 错误处理 +SystemLogger::getInstance()->logWarning("网络延迟较高: " + QString::number(latency) + "ms"); +``` + +## 性能考虑 + +### 内存管理 +- **行数限制**: 最大500行,超出自动删除最旧记录 +- **异步更新**: 日志记录不阻塞主线程 +- **智能刷新**: 避免频繁UI更新造成性能问题 + +### 用户体验 +- **响应速度**: 日志添加不影响界面响应 +- **视觉效果**: 平滑的滚动和更新动画 +- **可用性**: 直观的控制按钮和快捷操作 + +## 空间分配方案 + +### QSplitter布局 +```cpp +// 创建垂直分割器 +QSplitter *leftSplitter = new QSplitter(Qt::Vertical, this); + +// 系统日志面板 +SystemLogPanel *logPanel = new SystemLogPanel(this); +logPanel->setMinimumHeight(200); // 最小高度 +logPanel->setMaximumHeight(400); // 最大高度 + +// 设备管理面板 +DeviceListPanel *devicePanel = new DeviceListPanel(this); +devicePanel->setMinimumHeight(300); // 最小高度 + +// 设置分割比例 (35% : 65%) +leftSplitter->addWidget(logPanel); +leftSplitter->addWidget(devicePanel); +leftSplitter->setSizes(QList() << 350 << 650); +``` + +### 响应式调整 +- **小屏幕**: 自动调整比例,保证最小可用空间 +- **大屏幕**: 维持设计比例,提供最佳用户体验 +- **用户可调**: 支持用户拖拽分割线调整比例 + +## 实施计划 + +### Phase 1: 核心组件开发 +1. 创建 SystemLogger 单例管理器 +2. 创建 SystemLogPanel 界面组件 +3. 实现基础的日志记录和显示功能 + +### Phase 2: 界面集成 +1. 修改 MainWindow 布局,移除重复按钮 +2. 使用 QSplitter 实现分割布局 +3. 集成系统日志面板到左侧面板 + +### Phase 3: 功能完善 +1. 实现日志过滤和搜索功能 +2. 添加高级控制功能 (清空、暂停等) +3. 优化性能和用户体验 + +### Phase 4: 系统集成 +1. 在关键操作点添加日志记录 +2. 完善错误处理和异常记录 +3. 测试和调试整体功能 + +## 技术风险与应对 + +### 主要风险 +1. **性能影响**: 频繁的日志更新可能影响界面性能 +2. **内存占用**: 大量日志可能导致内存占用过高 +3. **用户体验**: 日志信息过多可能干扰主要功能 + +### 应对策略 +1. **异步处理**: 使用异步机制避免阻塞主线程 +2. **智能限制**: 设置合理的行数和更新频率限制 +3. **用户控制**: 提供暂停、过滤等用户控制选项 + +## 测试策略 + +### 功能测试 +- 各级别日志记录和显示正确性 +- 过滤和搜索功能准确性 +- 清空和暂停功能可靠性 + +### 性能测试 +- 大量日志的性能表现 +- 内存使用情况监控 +- 界面响应速度测试 + +### 集成测试 +- 与现有功能的兼容性 +- 空间分配的正确性 +- 用户交互的流畅性 + +--- + +**文档状态**: 🟢 **已完成** +**下次更新**: 根据实施进展进行更新 +**相关文档**: task.md, phase5_completion_report.md \ No newline at end of file diff --git a/src/Client/forms/main/MainWindow.ui b/src/Client/forms/main/MainWindow.ui index 29a1d0e5..bb34b376 100644 --- a/src/Client/forms/main/MainWindow.ui +++ b/src/Client/forms/main/MainWindow.ui @@ -262,198 +262,37 @@ border-radius: 1px; - - - 6 + + + + + 0 + 350 + - - - - - - - 0 - 70 - - - - - 18 - 75 - true - - - - 机器人列表 - - - - - - - - 40 - 40 - - - - - 40 - 40 - - - - border-image: url(:/image/res/image/tab.svg); - - - - - - - - - - - - - - - 0 - 85 - - - - - 20 - 75 - true - - - - 添加机器人 - - - - - - - - 40 - 40 - - - - - 40 - 40 - - - - border-image: url(:/image/res/image/robotbtn.svg); - - - - - - - - - - - - - - - 0 - 85 - - - - - 20 - 75 - true - - - - 添加无人机 - - - - - - - - 40 - 40 - - - - - 40 - 40 - - - - border-image: url(:/image/res/image/UAV.svg); - - - - - - - - - - - - - - - 0 - 70 - - - - - 18 - 75 - true - - - - 无人机列表 - - - - - - - - 40 - 40 - - - - - 40 - 40 - - - - false - - - border-image: url(:/image/res/image/tab.svg); - - - - - - - - - + + color: rgb(82, 194, 242); +font-size: 16px; +font-weight: bold; +padding: 20px; +margin: 10px; +background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(82, 194, 242, 0.1), + stop:1 rgba(45, 120, 180, 0.1)); +border: 2px dashed rgba(82, 194, 242, 0.5); +border-radius: 8px; + + + 🖥️ 系统日志面板 + +此区域将显示系统日志信息 +包括设备操作、连接状态、 +地图交互等关键信息 + + + Qt::AlignCenter + + diff --git a/src/Client/include/ui/components/SystemLogPanel.h b/src/Client/include/ui/components/SystemLogPanel.h new file mode 100644 index 00000000..04a6a201 --- /dev/null +++ b/src/Client/include/ui/components/SystemLogPanel.h @@ -0,0 +1,202 @@ +/** + * @file SystemLogPanel.h + * @brief 系统日志面板界面组件头文件 + * @author Qt UI Developer Expert + * @date 2024-12-21 + * @version 1.0 + */ + +#ifndef SYSTEM_LOG_PANEL_H +#define SYSTEM_LOG_PANEL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 前向声明 +class SystemLogger; + +/** + * @class SystemLogPanel + * @brief 系统日志显示面板组件 + * + * 系统日志面板是BattlefieldExplorationSystem中的核心UI组件, + * 用于实时显示系统操作日志、设备状态变化、错误信息等关键信息。 + * + * 主要功能: + * - 多级别日志显示(Debug, Info, Warning, Error, Success) + * - 实时日志更新和格式化显示 + * - 日志过滤和搜索功能 + * - 日志清空、暂停/恢复控制 + * - 军用风格的界面设计 + */ +class SystemLogPanel : public QWidget +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param parent 父控件指针 + */ + explicit SystemLogPanel(QWidget *parent = nullptr); + + /** + * @brief 析构函数 + */ + ~SystemLogPanel(); + + /** + * @brief 日志级别枚举(与SystemLogger保持一致) + */ + enum LogLevel { + Debug = 0, ///< 调试信息 + Info = 1, ///< 一般信息 + Warning = 2, ///< 警告信息 + Error = 3, ///< 错误信息 + Success = 4 ///< 成功信息 + }; + +public slots: + /** + * @brief 添加日志条目 + * @param level 日志级别 + * @param message 日志消息内容 + */ + void addLog(LogLevel level, const QString &message); + + /** + * @brief 清空所有日志 + */ + void clearLogs(); + + /** + * @brief 暂停日志更新 + */ + void pauseLogging(); + + /** + * @brief 恢复日志更新 + */ + void resumeLogging(); + + /** + * @brief 设置日志级别过滤 + * @param minLevel 最小显示级别 + */ + void setLogLevelFilter(LogLevel minLevel); + +private slots: + /** + * @brief 处理清空按钮点击 + */ + void onClearButtonClicked(); + + /** + * @brief 处理暂停/恢复按钮点击 + */ + void onPauseButtonClicked(); + + /** + * @brief 处理级别过滤器变化 + * @param index 选中的过滤级别索引 + */ + void onLevelFilterChanged(int index); + + /** + * @brief 更新状态信息显示 + */ + void updateStatusInfo(); + +private: + /** + * @brief 初始化UI界面 + */ + void setupUI(); + + /** + * @brief 设置界面样式 + */ + void setupStyle(); + + /** + * @brief 连接信号和槽 + */ + void connectSignals(); + + /** + * @brief 格式化日志条目 + * @param level 日志级别 + * @param message 消息内容 + * @return 格式化后的HTML字符串 + */ + QString formatLogEntry(LogLevel level, const QString &message); + + /** + * @brief 获取级别图标 + * @param level 日志级别 + * @return 对应的图标字符串 + */ + QString getLevelIcon(LogLevel level); + + /** + * @brief 获取级别颜色 + * @param level 日志级别 + * @return 对应的颜色字符串 + */ + QString getLevelColor(LogLevel level); + + /** + * @brief 获取级别名称 + * @param level 日志级别 + * @return 对应的级别名称 + */ + QString getLevelName(LogLevel level); + + /** + * @brief 限制日志行数,防止内存占用过高 + */ + void limitLogLines(); + + /** + * @brief 自动滚动到底部 + */ + void scrollToBottom(); + +private: + // UI组件 + QTextEdit *m_logTextEdit; ///< 日志显示文本框 + QPushButton *m_clearButton; ///< 清空按钮 + QPushButton *m_pauseButton; ///< 暂停/恢复按钮 + QComboBox *m_levelFilter; ///< 级别过滤下拉框 + QLabel *m_statusLabel; ///< 状态信息标签 + QLabel *m_titleLabel; ///< 标题标签 + + // 布局管理 + QVBoxLayout *m_mainLayout; ///< 主布局 + QHBoxLayout *m_controlLayout; ///< 控制按钮布局 + QHBoxLayout *m_statusLayout; ///< 状态信息布局 + + // 状态变量 + bool m_isPaused; ///< 是否暂停日志更新 + LogLevel m_minLevel; ///< 最小显示级别 + int m_logCounts[5]; ///< 各级别日志计数 + int m_totalLogCount; ///< 总日志数量 + int m_maxLogLines; ///< 最大日志行数限制 + + // 定时器 + QTimer *m_statusUpdateTimer; ///< 状态更新定时器 + + // 样式常量 + static const int MAX_LOG_LINES; ///< 最大日志行数 + static const int STATUS_UPDATE_INTERVAL; ///< 状态更新间隔(ms) +}; + +#endif // SYSTEM_LOG_PANEL_H \ No newline at end of file diff --git a/src/Client/include/ui/main/MainWindow.h b/src/Client/include/ui/main/MainWindow.h index 41e15fe8..f226443a 100644 --- a/src/Client/include/ui/main/MainWindow.h +++ b/src/Client/include/ui/main/MainWindow.h @@ -24,6 +24,7 @@ #include #include #include +#include // Qt控件头文件 #include @@ -40,6 +41,7 @@ // 自定义模块头文件 // #include "AudioModule/IntelligenceUI.h" // 暂时注释掉,待实现 #include "ui/components/DeviceListPanel.h" +#include "ui/components/SystemLogPanel.h" // 标准库头文件 #include @@ -230,6 +232,11 @@ private: */ void setupDeviceListPanel(); + /** + * @brief 设置系统日志面板和左侧面板分割器 + */ + void setupSystemLogPanel(); + /** * @brief 连接信号和槽 */ @@ -249,6 +256,8 @@ private: Ui::MainWindow *m_ui; ///< UI界面指针 // IntelligenceUI *m_intelligenceUI; ///< 情报传达界面指针(暂时注释掉) DeviceListPanel *m_deviceListPanel; ///< 设备列表面板组件 + SystemLogPanel *m_systemLogPanel; ///< 系统日志面板组件 + QSplitter *m_leftPanelSplitter; ///< 左侧面板分割器 QVector> m_robotList; ///< 机器人列表(名称-IP地址对) QVector> m_uavList; ///< 无人机列表(名称-IP地址对) // 人脸识别相关成员变量已移除(功能暂未实现) diff --git a/src/Client/include/utils/SystemLogger.h b/src/Client/include/utils/SystemLogger.h new file mode 100644 index 00000000..716f4e40 --- /dev/null +++ b/src/Client/include/utils/SystemLogger.h @@ -0,0 +1,178 @@ +/** + * @file SystemLogger.h + * @brief 系统日志管理器单例类头文件 + * @author Qt UI Developer Expert + * @date 2024-12-21 + * @version 1.0 + */ + +#ifndef SYSTEM_LOGGER_H +#define SYSTEM_LOGGER_H + +#include +#include +#include +#include +#include + +/** + * @class SystemLogger + * @brief 系统日志管理器单例类 + * + * SystemLogger是战场探索系统的核心日志管理组件,采用单例模式设计, + * 负责统一管理和分发系统中的各种日志信息。 + * + * 主要功能: + * - 多级别日志记录(Debug, Info, Warning, Error, Success) + * - 线程安全的日志记录 + * - 信号机制实时通知UI组件 + * - 统一的日志接口,便于系统各模块调用 + * + * 使用方式: + * @code + * SystemLogger::getInstance()->logInfo("设备连接成功"); + * SystemLogger::getInstance()->logError("数据库连接失败"); + * @endcode + */ +class SystemLogger : public QObject +{ + Q_OBJECT + +public: + /** + * @brief 日志级别枚举 + */ + enum LogLevel { + Debug = 0, ///< 调试信息 - 开发阶段使用 + Info = 1, ///< 一般信息 - 正常操作记录 + Warning = 2, ///< 警告信息 - 需要注意的情况 + Error = 3, ///< 错误信息 - 系统错误和异常 + Success = 4 ///< 成功信息 - 重要操作成功完成 + }; + + /** + * @brief 获取单例实例 + * @return SystemLogger单例指针 + */ + static SystemLogger* getInstance(); + + /** + * @brief 销毁单例实例 + * 通常在应用程序退出时调用 + */ + static void destroyInstance(); + + /** + * @brief 记录调试信息 + * @param message 日志消息内容 + */ + void logDebug(const QString &message); + + /** + * @brief 记录一般信息 + * @param message 日志消息内容 + */ + void logInfo(const QString &message); + + /** + * @brief 记录警告信息 + * @param message 日志消息内容 + */ + void logWarning(const QString &message); + + /** + * @brief 记录错误信息 + * @param message 日志消息内容 + */ + void logError(const QString &message); + + /** + * @brief 记录成功信息 + * @param message 日志消息内容 + */ + void logSuccess(const QString &message); + + /** + * @brief 通用日志记录方法 + * @param level 日志级别 + * @param message 日志消息内容 + */ + void log(LogLevel level, const QString &message); + + /** + * @brief 设置是否启用控制台输出 + * @param enabled true为启用,false为禁用 + */ + void setConsoleOutputEnabled(bool enabled); + + /** + * @brief 获取级别名称字符串 + * @param level 日志级别 + * @return 级别名称 + */ + static QString getLevelString(LogLevel level); + +signals: + /** + * @brief 日志添加信号 + * @param level 日志级别 + * @param message 日志消息内容 + * + * 当有新日志记录时发出此信号,UI组件可以连接此信号来实时更新显示 + */ + void logAdded(LogLevel level, const QString &message); + +private: + /** + * @brief 私有构造函数(单例模式) + * @param parent 父对象指针 + */ + explicit SystemLogger(QObject *parent = nullptr); + + /** + * @brief 私有析构函数(单例模式) + */ + ~SystemLogger(); + + /** + * @brief 禁用拷贝构造函数 + */ + SystemLogger(const SystemLogger&) = delete; + + /** + * @brief 禁用赋值运算符 + */ + SystemLogger& operator=(const SystemLogger&) = delete; + + /** + * @brief 内部日志记录实现 + * @param level 日志级别 + * @param message 日志消息内容 + */ + void logInternal(LogLevel level, const QString &message); + + /** + * @brief 输出到控制台 + * @param level 日志级别 + * @param message 日志消息内容 + */ + void outputToConsole(LogLevel level, const QString &message); + +private: + static SystemLogger *s_instance; ///< 单例实例指针 + static QMutex s_mutex; ///< 线程安全互斥锁 + + bool m_consoleOutputEnabled; ///< 是否启用控制台输出 + QMutex m_logMutex; ///< 日志记录互斥锁 +}; + +/** + * @brief 便捷宏定义,简化日志调用 + */ +#define LOG_DEBUG(msg) SystemLogger::getInstance()->logDebug(msg) +#define LOG_INFO(msg) SystemLogger::getInstance()->logInfo(msg) +#define LOG_WARNING(msg) SystemLogger::getInstance()->logWarning(msg) +#define LOG_ERROR(msg) SystemLogger::getInstance()->logError(msg) +#define LOG_SUCCESS(msg) SystemLogger::getInstance()->logSuccess(msg) + +#endif // SYSTEM_LOGGER_H \ No newline at end of file diff --git a/src/Client/src/ui/components/DeviceCard.cpp b/src/Client/src/ui/components/DeviceCard.cpp index 5107bc8a..8b4e53a0 100644 --- a/src/Client/src/ui/components/DeviceCard.cpp +++ b/src/Client/src/ui/components/DeviceCard.cpp @@ -7,6 +7,7 @@ */ #include "ui/components/DeviceCard.h" +#include "utils/SystemLogger.h" // Qt GUI头文件 #include @@ -60,6 +61,7 @@ DeviceCard::DeviceCard(const DeviceInfo &device, QWidget *parent) setAttribute(Qt::WA_Hover, true); qDebug() << "DeviceCard created for device:" << device.name; + SystemLogger::getInstance()->logDebug(QString("创建设备卡片: %1").arg(device.name)); } DeviceCard::~DeviceCard() @@ -436,7 +438,11 @@ void DeviceCard::refreshStatus() void DeviceCard::mousePressEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton) { - setSelected(!m_isSelected); + bool newSelected = !m_isSelected; + setSelected(newSelected); + if (newSelected) { + SystemLogger::getInstance()->logInfo(QString("选中设备: %1").arg(m_deviceInfo.name)); + } event->accept(); } QWidget::mousePressEvent(event); @@ -523,6 +529,7 @@ void DeviceCard::paintEvent(QPaintEvent *event) void DeviceCard::onDetailsClicked() { qDebug() << "Details clicked for device:" << m_deviceInfo.name; + SystemLogger::getInstance()->logInfo(QString("查看设备详情: %1").arg(m_deviceInfo.name)); emit deviceDetailsRequested(m_deviceInfo.id); } @@ -536,10 +543,12 @@ void DeviceCard::onControlClicked() // 当前在线,切换为离线 newStatus = DeviceStatus::Offline; qDebug() << "Disconnecting device:" << m_deviceInfo.name; + SystemLogger::getInstance()->logInfo(QString("正在断开连接: %1").arg(m_deviceInfo.name)); } else { // 当前离线,切换为在线 newStatus = DeviceStatus::Online; qDebug() << "Connecting device:" << m_deviceInfo.name; + SystemLogger::getInstance()->logInfo(QString("正在连接设备: %1").arg(m_deviceInfo.name)); } // 更新数据库中的状态 @@ -557,8 +566,13 @@ void DeviceCard::onControlClicked() qDebug() << "Device status successfully updated:" << m_deviceInfo.name << "to" << (newStatus == DeviceStatus::Online ? "Online" : "Offline"); + + // 记录连接状态变更成功 + QString statusText = (newStatus == DeviceStatus::Online) ? "上线" : "离线"; + SystemLogger::getInstance()->logSuccess(QString("设备 %1 已%2").arg(m_deviceInfo.name).arg(statusText)); } else { qWarning() << "Failed to update device status in database for:" << m_deviceInfo.name; + SystemLogger::getInstance()->logError(QString("设备状态更新失败: %1").arg(m_deviceInfo.name)); // 可以显示错误提示给用户 } } @@ -566,6 +580,7 @@ void DeviceCard::onControlClicked() void DeviceCard::onLocationClicked() { qDebug() << "Location clicked for device:" << m_deviceInfo.name; + SystemLogger::getInstance()->logInfo(QString("请求设备定位: %1").arg(m_deviceInfo.name)); emit deviceLocationRequested(m_deviceInfo.id); } diff --git a/src/Client/src/ui/components/DeviceListPanel.cpp b/src/Client/src/ui/components/DeviceListPanel.cpp index c447b0e5..7a1d36f7 100644 --- a/src/Client/src/ui/components/DeviceListPanel.cpp +++ b/src/Client/src/ui/components/DeviceListPanel.cpp @@ -7,6 +7,7 @@ */ #include "ui/components/DeviceListPanel.h" +#include "utils/SystemLogger.h" // Qt GUI头文件 #include @@ -290,6 +291,7 @@ int DeviceListPanel::getOnlineDeviceCount() const void DeviceListPanel::refreshDeviceList() { qDebug() << "Refreshing device list..."; + SystemLogger::getInstance()->logInfo("正在刷新设备列表..."); // 清除现有设备卡片 clearAllDeviceCards(); @@ -312,6 +314,7 @@ void DeviceListPanel::refreshDeviceList() updateDeviceCountStats(); qDebug() << "Device list refreshed. Total devices:" << m_allDevices.size(); + SystemLogger::getInstance()->logSuccess(QString("设备列表刷新完成,共加载 %1 个设备").arg(m_allDevices.size())); } void DeviceListPanel::addDevice(const DeviceInfo &device) @@ -335,6 +338,7 @@ void DeviceListPanel::addDevice(const DeviceInfo &device) updateDeviceCountStats(); qDebug() << "Device added:" << device.name; + SystemLogger::getInstance()->logSuccess(QString("设备已添加: %1").arg(device.name)); } } @@ -345,6 +349,15 @@ void DeviceListPanel::removeDevice(const QString &deviceId) return; } + // 获取设备名称用于日志 + QString deviceName = "未知设备"; + for (const auto &device : m_allDevices) { + if (device.id == deviceId) { + deviceName = device.name; + break; + } + } + // 移除设备卡片 DeviceCard *card = m_deviceCards.take(deviceId); card->deleteLater(); @@ -365,6 +378,7 @@ void DeviceListPanel::removeDevice(const QString &deviceId) updateDeviceCountStats(); qDebug() << "Device removed:" << deviceId; + SystemLogger::getInstance()->logWarning(QString("设备已移除: %1").arg(deviceName)); } void DeviceListPanel::updateDevice(const DeviceInfo &device) @@ -469,6 +483,7 @@ QList DeviceListPanel::loadDevicesFromDatabase() if (db.open()) { qDebug() << "Successfully connected to Client database"; + SystemLogger::getInstance()->logSuccess("成功连接到数据库"); QSqlQuery query(db); QString sql = "SELECT id, name, device_type, state, ip, port, longitude, latitude, signal_strength, battery_level FROM devices"; @@ -513,6 +528,7 @@ QList DeviceListPanel::loadDevicesFromDatabase() db.close(); } else { qWarning() << "Failed to connect to Client database:" << db.lastError().text(); + SystemLogger::getInstance()->logError("数据库连接失败"); } } catch (const std::exception& e) { qWarning() << "Database connection exception:" << e.what(); @@ -557,6 +573,7 @@ bool DeviceListPanel::deleteDeviceFromDatabase(const QString &deviceId) if (query.exec()) { if (query.numRowsAffected() > 0) { qDebug() << "Successfully deleted device from database:" << deviceId; + SystemLogger::getInstance()->logSuccess("设备从数据库中删除成功"); success = true; // 从内存中移除设备 @@ -588,11 +605,13 @@ bool DeviceListPanel::deleteDeviceFromDatabase(const QString &deviceId) } } else { qWarning() << "Failed to execute delete query:" << query.lastError().text(); + SystemLogger::getInstance()->logError("数据库删除操作失败"); } db.close(); } else { qWarning() << "Failed to connect to database for deletion:" << db.lastError().text(); + SystemLogger::getInstance()->logError("删除操作数据库连接失败"); } // 清理数据库连接 diff --git a/src/Client/src/ui/components/SystemLogPanel.cpp b/src/Client/src/ui/components/SystemLogPanel.cpp new file mode 100644 index 00000000..cde94c22 --- /dev/null +++ b/src/Client/src/ui/components/SystemLogPanel.cpp @@ -0,0 +1,476 @@ +/** + * @file SystemLogPanel.cpp + * @brief 系统日志面板界面组件实现 + * @author Qt UI Developer Expert + * @date 2024-12-21 + * @version 1.0 + */ + +#include "ui/components/SystemLogPanel.h" +#include "utils/SystemLogger.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 静态常量定义 +const int SystemLogPanel::MAX_LOG_LINES = 500; +const int SystemLogPanel::STATUS_UPDATE_INTERVAL = 2000; // 2秒 + +SystemLogPanel::SystemLogPanel(QWidget *parent) + : QWidget(parent) + , m_logTextEdit(nullptr) + , m_clearButton(nullptr) + , m_pauseButton(nullptr) + , m_levelFilter(nullptr) + , m_statusLabel(nullptr) + , m_titleLabel(nullptr) + , m_mainLayout(nullptr) + , m_controlLayout(nullptr) + , m_statusLayout(nullptr) + , m_isPaused(false) + , m_minLevel(Debug) + , m_totalLogCount(0) + , m_maxLogLines(MAX_LOG_LINES) + , m_statusUpdateTimer(nullptr) +{ + // 初始化日志计数器 + for (int i = 0; i < 5; ++i) { + m_logCounts[i] = 0; + } + + setupUI(); + setupStyle(); + connectSignals(); + + // 连接到SystemLogger的信号 + connect(SystemLogger::getInstance(), &SystemLogger::logAdded, + this, [this](SystemLogger::LogLevel level, const QString &message) { + addLog(static_cast(level), message); + }); + + qDebug() << "SystemLogPanel initialized successfully"; +} + +SystemLogPanel::~SystemLogPanel() +{ + if (m_statusUpdateTimer) { + m_statusUpdateTimer->stop(); + } + qDebug() << "SystemLogPanel destroyed"; +} + +void SystemLogPanel::setupUI() +{ + // 创建主布局 + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(4); + m_mainLayout->setContentsMargins(8, 8, 8, 10); + + // 创建标题标签 + m_titleLabel = new QLabel("🖥️ 系统日志", this); + m_titleLabel->setMinimumHeight(25); + m_titleLabel->setAlignment(Qt::AlignCenter); + + // 创建控制按钮布局 + m_controlLayout = new QHBoxLayout(); + m_controlLayout->setSpacing(4); + + // 创建控制按钮 + m_clearButton = new QPushButton("清空", this); + m_clearButton->setMinimumSize(68, 30); + m_clearButton->setMaximumSize(68, 30); + + m_pauseButton = new QPushButton("暂停", this); + m_pauseButton->setMinimumSize(68, 30); + m_pauseButton->setMaximumSize(68, 30); + + // 创建级别过滤器 + m_levelFilter = new QComboBox(this); + m_levelFilter->addItem("全部", static_cast(Debug)); + m_levelFilter->addItem("信息+", static_cast(Info)); + m_levelFilter->addItem("警告+", static_cast(Warning)); + m_levelFilter->addItem("错误+", static_cast(Error)); + m_levelFilter->addItem("成功", static_cast(Success)); + m_levelFilter->setMinimumSize(88, 30); + m_levelFilter->setMaximumSize(88, 30); + + // 添加控制组件到布局 + m_controlLayout->addWidget(m_clearButton); + m_controlLayout->addWidget(m_pauseButton); + m_controlLayout->addStretch(); + m_controlLayout->addWidget(m_levelFilter); + + // 创建日志显示文本框 + m_logTextEdit = new QTextEdit(this); + m_logTextEdit->setReadOnly(true); + m_logTextEdit->setMinimumHeight(250); + m_logTextEdit->setMaximumHeight(350); + m_logTextEdit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + m_logTextEdit->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); + + // 创建状态信息标签 + m_statusLabel = new QLabel("就绪", this); + m_statusLabel->setMinimumHeight(26); + m_statusLabel->setMaximumHeight(28); + m_statusLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); + + // 创建状态布局 + m_statusLayout = new QHBoxLayout(); + m_statusLayout->setContentsMargins(0, 0, 0, 0); + m_statusLayout->addWidget(m_statusLabel); + m_statusLayout->addStretch(); + + // 添加所有组件到主布局 + m_mainLayout->addWidget(m_titleLabel); + m_mainLayout->addLayout(m_controlLayout); + m_mainLayout->addWidget(m_logTextEdit); + m_mainLayout->addLayout(m_statusLayout); + + // 创建状态更新定时器 + m_statusUpdateTimer = new QTimer(this); + m_statusUpdateTimer->setInterval(STATUS_UPDATE_INTERVAL); + m_statusUpdateTimer->start(); + + qDebug() << "SystemLogPanel UI setup completed"; +} + +void SystemLogPanel::setupStyle() +{ + // 主面板样式 + setStyleSheet( + "SystemLogPanel {" + " background-color: rgba(25, 35, 45, 0.95);" + " border: 2px solid rgba(82, 194, 242, 0.4);" + " border-radius: 8px;" + " padding: 4px;" + "}" + ); + + // 标题样式 + m_titleLabel->setStyleSheet( + "QLabel {" + " color: rgb(82, 194, 242);" + " font-size: 14px;" + " font-weight: bold;" + " padding: 4px 8px;" + " background: qlineargradient(x1:0, y1:0, x2:1, y2:1," + " stop:0 rgba(82, 194, 242, 0.2)," + " stop:1 rgba(45, 120, 180, 0.2));" + " border: 1px solid rgba(82, 194, 242, 0.5);" + " border-radius: 4px;" + "}" + ); + + // 按钮通用样式 + QString buttonStyle = + "QPushButton {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1," + " stop:0 rgba(45, 65, 95, 0.8)," + " stop:1 rgba(25, 40, 65, 0.8));" + " color: rgb(220, 230, 242);" + " border: 1px solid rgba(82, 194, 242, 0.5);" + " border-radius: 4px;" + " font-size: 12px;" + " font-weight: bold;" + " padding: 3px 8px;" + "}" + "QPushButton:hover {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1," + " stop:0 rgba(82, 194, 242, 0.6)," + " stop:1 rgba(45, 120, 180, 0.6));" + " border: 1px solid rgba(82, 194, 242, 0.8);" + "}" + "QPushButton:pressed {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1," + " stop:0 rgba(82, 194, 242, 0.8)," + " stop:1 rgba(45, 120, 180, 0.8));" + "}"; + + m_clearButton->setStyleSheet(buttonStyle); + m_pauseButton->setStyleSheet(buttonStyle); + + // 下拉框样式 + m_levelFilter->setStyleSheet( + "QComboBox {" + " background: rgba(25, 40, 65, 0.8);" + " color: rgb(220, 230, 242);" + " border: 1px solid rgba(82, 194, 242, 0.5);" + " border-radius: 4px;" + " padding: 3px 8px;" + " font-size: 12px;" + " font-weight: bold;" + "}" + "QComboBox::drop-down {" + " subcontrol-origin: padding;" + " subcontrol-position: top right;" + " width: 15px;" + " border-left: 1px solid rgba(82, 194, 242, 0.5);" + "}" + "QComboBox::down-arrow {" + " width: 8px;" + " height: 8px;" + "}" + "QComboBox QAbstractItemView {" + " background-color: rgba(25, 40, 65, 0.95);" + " color: rgb(220, 230, 242);" + " border: 1px solid rgba(82, 194, 242, 0.5);" + " border-radius: 4px;" + " selection-background-color: rgba(82, 194, 242, 0.3);" + "}" + ); + + // 文本框样式 + m_logTextEdit->setStyleSheet( + "QTextEdit {" + " background-color: rgba(15, 22, 32, 0.9);" + " color: rgb(220, 230, 242);" + " border: 1px solid rgba(82, 194, 242, 0.4);" + " border-radius: 6px;" + " padding: 6px;" + " font-family: 'Consolas', 'Monaco', monospace;" + " font-size: 13px;" + " line-height: 1.4;" + " selection-background-color: rgba(82, 194, 242, 0.3);" + "}" + "QScrollBar:vertical {" + " background-color: rgba(30, 44, 62, 0.8);" + " width: 10px;" + " border-radius: 5px;" + "}" + "QScrollBar::handle:vertical {" + " background-color: rgba(82, 194, 242, 0.6);" + " border-radius: 5px;" + " min-height: 20px;" + "}" + "QScrollBar::handle:vertical:hover {" + " background-color: rgba(82, 194, 242, 0.8);" + "}" + ); + + // 状态标签样式 + m_statusLabel->setStyleSheet( + "QLabel {" + " color: rgb(150, 180, 210);" + " font-size: 12px;" + " font-weight: normal;" + " padding: 3px 6px;" + " background: transparent;" + "}" + ); + + qDebug() << "SystemLogPanel styles applied"; +} + +void SystemLogPanel::connectSignals() +{ + // 连接按钮信号 + connect(m_clearButton, &QPushButton::clicked, + this, &SystemLogPanel::onClearButtonClicked); + connect(m_pauseButton, &QPushButton::clicked, + this, &SystemLogPanel::onPauseButtonClicked); + + // 连接下拉框信号 + connect(m_levelFilter, QOverload::of(&QComboBox::currentIndexChanged), + this, &SystemLogPanel::onLevelFilterChanged); + + // 连接定时器信号 + connect(m_statusUpdateTimer, &QTimer::timeout, + this, &SystemLogPanel::updateStatusInfo); + + qDebug() << "SystemLogPanel signals connected"; +} + +void SystemLogPanel::addLog(LogLevel level, const QString &message) +{ + // 如果暂停则不添加日志 + if (m_isPaused) { + return; + } + + // 检查级别过滤 + if (level < m_minLevel) { + return; + } + + // 更新计数器 + if (level >= 0 && level < 5) { + m_logCounts[level]++; + } + m_totalLogCount++; + + // 格式化并添加日志条目 + QString formattedEntry = formatLogEntry(level, message); + m_logTextEdit->append(formattedEntry); + + // 限制日志行数 + limitLogLines(); + + // 自动滚动到底部 + scrollToBottom(); + + qDebug() << QString("Log added: [%1] %2").arg(getLevelName(level)).arg(message); +} + +void SystemLogPanel::clearLogs() +{ + m_logTextEdit->clear(); + + // 重置计数器 + for (int i = 0; i < 5; ++i) { + m_logCounts[i] = 0; + } + m_totalLogCount = 0; + + // 更新状态信息 + updateStatusInfo(); + + qDebug() << "System logs cleared"; +} + +void SystemLogPanel::pauseLogging() +{ + m_isPaused = true; + m_pauseButton->setText("恢复"); + updateStatusInfo(); + qDebug() << "Logging paused"; +} + +void SystemLogPanel::resumeLogging() +{ + m_isPaused = false; + m_pauseButton->setText("暂停"); + updateStatusInfo(); + qDebug() << "Logging resumed"; +} + +void SystemLogPanel::setLogLevelFilter(LogLevel minLevel) +{ + m_minLevel = minLevel; + // 更新下拉框选择 + for (int i = 0; i < m_levelFilter->count(); ++i) { + if (m_levelFilter->itemData(i).toInt() == static_cast(minLevel)) { + m_levelFilter->setCurrentIndex(i); + break; + } + } + qDebug() << "Log level filter set to:" << getLevelName(minLevel); +} + +void SystemLogPanel::onClearButtonClicked() +{ + clearLogs(); +} + +void SystemLogPanel::onPauseButtonClicked() +{ + if (m_isPaused) { + resumeLogging(); + } else { + pauseLogging(); + } +} + +void SystemLogPanel::onLevelFilterChanged(int index) +{ + if (index >= 0 && index < m_levelFilter->count()) { + LogLevel newLevel = static_cast(m_levelFilter->itemData(index).toInt()); + m_minLevel = newLevel; + qDebug() << "Log level filter changed to:" << getLevelName(newLevel); + } +} + +void SystemLogPanel::updateStatusInfo() +{ + QString statusText = QString("总计: %1 | 错误: %2 | 警告: %3") + .arg(m_totalLogCount) + .arg(m_logCounts[Error]) + .arg(m_logCounts[Warning]); + + if (m_isPaused) { + statusText += " | 已暂停"; + } else { + statusText += " | 运行中"; + } + + m_statusLabel->setText(statusText); +} + +QString SystemLogPanel::formatLogEntry(LogLevel level, const QString &message) +{ + QString timestamp = QDateTime::currentDateTime().toString("hh:mm:ss.zzz"); + QString levelIcon = getLevelIcon(level); + QString levelColor = getLevelColor(level); + + return QString("[%2] %3 %4") + .arg(levelColor) + .arg(timestamp) + .arg(levelIcon) + .arg(message); +} + +QString SystemLogPanel::getLevelIcon(LogLevel level) +{ + switch (level) { + case Debug: return "🔍"; + case Info: return "🔵"; + case Warning: return "🟡"; + case Error: return "🔴"; + case Success: return "🟢"; + default: return "⚪"; + } +} + +QString SystemLogPanel::getLevelColor(LogLevel level) +{ + switch (level) { + case Debug: return "#9E9E9E"; + case Info: return "#52C2F2"; + case Warning: return "#FFD700"; + case Error: return "#FF4444"; + case Success: return "#00FF7F"; + default: return "#FFFFFF"; + } +} + +QString SystemLogPanel::getLevelName(LogLevel level) +{ + switch (level) { + case Debug: return "Debug"; + case Info: return "Info"; + case Warning: return "Warning"; + case Error: return "Error"; + case Success: return "Success"; + default: return "Unknown"; + } +} + +void SystemLogPanel::limitLogLines() +{ + // 获取文档和光标 + QTextDocument *document = m_logTextEdit->document(); + int blockCount = document->blockCount(); + + // 如果超过最大行数,删除最旧的行 + if (blockCount > m_maxLogLines) { + QTextCursor cursor(document); + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::Down, QTextCursor::KeepAnchor, + blockCount - m_maxLogLines); + cursor.removeSelectedText(); + } +} + +void SystemLogPanel::scrollToBottom() +{ + QScrollBar *scrollBar = m_logTextEdit->verticalScrollBar(); + scrollBar->setValue(scrollBar->maximum()); +} \ No newline at end of file diff --git a/src/Client/src/ui/dialogs/DeviceDialog.cpp b/src/Client/src/ui/dialogs/DeviceDialog.cpp index b30563ad..c7bd330e 100644 --- a/src/Client/src/ui/dialogs/DeviceDialog.cpp +++ b/src/Client/src/ui/dialogs/DeviceDialog.cpp @@ -8,6 +8,7 @@ #include "ui/dialogs/DeviceDialog.h" #include "build/ui_DeviceDialog.h" +#include "utils/SystemLogger.h" // Qt headers #include @@ -61,6 +62,7 @@ void DeviceDialog::setDeviceInfo(const QString &deviceId, const QString &name, c const QString &createdAt, const QString &updatedAt) { m_currentDeviceId = deviceId; + SystemLogger::getInstance()->logInfo(QString("打开设备详情对话框: %1").arg(name)); // 设置设备图标 setDeviceIcon(type); @@ -284,6 +286,7 @@ void DeviceDialog::refreshDeviceInfo() void DeviceDialog::onConnectClicked() { if (!m_currentDeviceId.isEmpty()) { + SystemLogger::getInstance()->logInfo("从详情对话框请求连接设备"); emit deviceConnectRequested(m_currentDeviceId); // 记录操作日志 @@ -294,6 +297,7 @@ void DeviceDialog::onConnectClicked() void DeviceDialog::onDisconnectClicked() { if (!m_currentDeviceId.isEmpty()) { + SystemLogger::getInstance()->logInfo("从详情对话框请求断开设备"); emit deviceDisconnectRequested(m_currentDeviceId); // 记录操作日志 @@ -304,6 +308,7 @@ void DeviceDialog::onDisconnectClicked() void DeviceDialog::onLocateClicked() { if (!m_currentDeviceId.isEmpty()) { + SystemLogger::getInstance()->logInfo("从详情对话框请求设备定位"); emit deviceLocationRequested(m_currentDeviceId); // 记录操作日志 @@ -313,6 +318,7 @@ void DeviceDialog::onLocateClicked() void DeviceDialog::onRefreshClicked() { + SystemLogger::getInstance()->logInfo("刷新设备信息"); refreshDeviceInfo(); } diff --git a/src/Client/src/ui/main/MainWindow.cpp b/src/Client/src/ui/main/MainWindow.cpp index 234832ea..b541d81f 100644 --- a/src/Client/src/ui/main/MainWindow.cpp +++ b/src/Client/src/ui/main/MainWindow.cpp @@ -9,6 +9,7 @@ #include "ui/main/MainWindow.h" #include "build/ui_MainWindow.h" #include "ui/dialogs/DeviceDialog.h" +#include "utils/SystemLogger.h" // Qt GUI头文件 #include @@ -42,11 +43,14 @@ #include #include #include +#include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , m_ui(new Ui::MainWindow) , m_deviceListPanel(nullptr) + , m_systemLogPanel(nullptr) + , m_leftPanelSplitter(nullptr) // , m_intelligenceUI(nullptr) // 暂时注释掉 { m_ui->setupUi(this); @@ -84,22 +88,60 @@ void MainWindow::setupUI() // 初始化随机数生成器 qsrand(QTime::currentTime().msec()); - // 创建并集成DeviceListPanel到左侧面板 - setupDeviceListPanel(); + // 创建并集成SystemLogPanel和DeviceListPanel到左侧面板 + setupSystemLogPanel(); // 恢复地图显示控制 setupMapDisplay(); - // 控制添加机器人 - addRobotControl(m_ui->addrobot); - // 控制机器人列表 - robotsInfosControl(m_ui->robottab); + // 注意:原有的重复设备管理按钮已被移除,功能集成在DeviceListPanel中 + + // 记录系统启动日志 + SystemLogger::getInstance()->logInfo("系统启动完成"); } -void MainWindow::setupDeviceListPanel() +void MainWindow::setupSystemLogPanel() { + // 创建系统日志面板 + m_systemLogPanel = new SystemLogPanel(this); + // 创建设备列表面板 m_deviceListPanel = new DeviceListPanel(this); + // 创建垂直分割器 + m_leftPanelSplitter = new QSplitter(Qt::Vertical, this); + + // 设置系统日志面板的高度限制 + m_systemLogPanel->setMinimumHeight(200); + m_systemLogPanel->setMaximumHeight(400); + + // 设置设备管理面板的高度限制 + m_deviceListPanel->setMinimumHeight(300); + + // 添加面板到分割器 + m_leftPanelSplitter->addWidget(m_systemLogPanel); + m_leftPanelSplitter->addWidget(m_deviceListPanel); + + // 设置分割比例 (35% : 65%) + m_leftPanelSplitter->setSizes(QList() << 350 << 650); + + // 设置分割器样式 + m_leftPanelSplitter->setStyleSheet( + "QSplitter::handle {" + " background: qlineargradient(x1:0, y1:0, x2:1, y2:0," + " stop:0 rgba(82, 194, 242, 0.3)," + " stop:0.5 rgba(82, 194, 242, 0.8)," + " stop:1 rgba(82, 194, 242, 0.3));" + " border-radius: 2px;" + " height: 8px;" + "}" + "QSplitter::handle:hover {" + " background: qlineargradient(x1:0, y1:0, x2:1, y2:0," + " stop:0 rgba(82, 194, 242, 0.5)," + " stop:0.5 rgba(82, 194, 242, 1.0)," + " stop:1 rgba(82, 194, 242, 0.5));" + "}" + ); + // 获取左侧面板的布局 QVBoxLayout *leftLayout = qobject_cast(m_ui->leftPanel->layout()); if (leftLayout) { @@ -111,8 +153,8 @@ void MainWindow::setupDeviceListPanel() } } - // 将DeviceListPanel添加到左侧面板 - leftLayout->addWidget(m_deviceListPanel); + // 将分割器添加到左侧面板 + leftLayout->addWidget(m_leftPanelSplitter); // 连接DeviceListPanel信号 connect(m_deviceListPanel, &DeviceListPanel::deviceSelected, @@ -126,12 +168,20 @@ void MainWindow::setupDeviceListPanel() connect(m_deviceListPanel, &DeviceListPanel::addDeviceRequested, this, &MainWindow::onAddDeviceRequested); - qDebug() << "DeviceListPanel integrated into left panel - original content hidden"; + qDebug() << "SystemLogPanel and DeviceListPanel integrated with QSplitter (35%:65%)"; + SystemLogger::getInstance()->logInfo("系统日志面板初始化完成"); } else { qWarning() << "Failed to get left panel layout"; + SystemLogger::getInstance()->logError("左侧面板布局获取失败"); } } +void MainWindow::setupDeviceListPanel() +{ + // 此方法已被setupSystemLogPanel()替代,保留以兼容可能的调用 + qDebug() << "setupDeviceListPanel() is deprecated, use setupSystemLogPanel() instead"; +} + void MainWindow::setupStyle() { // 设置按钮样式 - 现代化军用风格 @@ -162,10 +212,7 @@ void MainWindow::setupStyle() "}"; // 应用样式到所有按钮 - m_ui->robottab->setStyleSheet(buttonStyle); - m_ui->addrobot->setStyleSheet(buttonStyle); - m_ui->addUAV->setStyleSheet(buttonStyle); - m_ui->UAVtab->setStyleSheet(buttonStyle); + // 注意:原有的重复设备管理按钮已被移除 m_ui->UAVview->setStyleSheet(buttonStyle); m_ui->robotView->setStyleSheet(buttonStyle); m_ui->robotMapping->setStyleSheet(buttonStyle); @@ -178,8 +225,7 @@ void MainWindow::setupStyle() void MainWindow::connectSignals() { // 连接按钮信号 - connect(m_ui->addUAV, &QPushButton::clicked, this, &MainWindow::onAddUAVClicked); - connect(m_ui->UAVtab, &QPushButton::clicked, this, &MainWindow::onUAVTabClicked); + // 注意:原有的重复设备管理按钮信号已被移除 connect(m_ui->UAVview, &QPushButton::clicked, this, &MainWindow::onUAVViewClicked); connect(m_ui->robotView, &QPushButton::clicked, this, &MainWindow::onRobotViewClicked); connect(m_ui->robotMapping, &QPushButton::clicked, this, &MainWindow::onRobotMappingClicked); @@ -424,6 +470,9 @@ void MainWindow::onAddRobotClicked() m_robotList.append(qMakePair(name, ip)); QMessageBox::information(this, "成功", "机器人添加成功!"); + // 记录成功日志 + SystemLogger::getInstance()->logSuccess(QString("机器人添加成功: %1 (%2)").arg(name).arg(deviceId)); + // 刷新设备列表 if (m_deviceListPanel) { m_deviceListPanel->refreshDeviceList(); @@ -432,6 +481,7 @@ void MainWindow::onAddRobotClicked() dialog->accept(); } else { QMessageBox::warning(this, "错误", "保存到数据库失败!"); + SystemLogger::getInstance()->logError(QString("机器人添加失败: %1 - 数据库保存失败").arg(name)); } } else { QMessageBox::warning(this, "错误", "请填写完整信息!"); @@ -611,6 +661,9 @@ void MainWindow::onAddUAVClicked() m_uavList.append(qMakePair(name, ip)); QMessageBox::information(this, "成功", "无人机添加成功!"); + // 记录成功日志 + SystemLogger::getInstance()->logSuccess(QString("无人机添加成功: %1 (%2)").arg(name).arg(deviceId)); + // 刷新设备列表 if (m_deviceListPanel) { m_deviceListPanel->refreshDeviceList(); @@ -619,6 +672,7 @@ void MainWindow::onAddUAVClicked() dialog->accept(); } else { QMessageBox::warning(this, "错误", "保存到数据库失败!"); + SystemLogger::getInstance()->logError(QString("无人机添加失败: %1 - 数据库保存失败").arg(name)); } } else { QMessageBox::warning(this, "错误", "请填写完整信息!"); @@ -724,6 +778,7 @@ void MainWindow::onDeviceControlRequested(const QString &deviceId) void MainWindow::onDeviceLocationRequested(const QString &deviceId) { qDebug() << "Device location requested for:" << deviceId; + SystemLogger::getInstance()->logInfo(QString("请求设备定位: %1").arg(deviceId)); // 从设备列表面板获取设备信息 if (m_deviceListPanel) { @@ -785,6 +840,7 @@ void MainWindow::onDeviceLocationRequested(const QString &deviceId) } qDebug() << QString("设备 %1 定位到位置: (%2, %3)").arg(deviceName).arg(latitude).arg(longitude); + SystemLogger::getInstance()->logSuccess(QString("设备定位完成: %1 -> (%2, %3)").arg(deviceName).arg(latitude).arg(longitude)); } else { QMessageBox::warning(this, "设备定位", QString("无法获取设备位置信息\n设备ID: %1").arg(deviceId)); @@ -806,6 +862,7 @@ void MainWindow::onDeviceDetailsRequested(const QString &deviceId) if (!db.open()) { qWarning() << "Failed to connect to database for device details:" << db.lastError().text(); + SystemLogger::getInstance()->logError("数据库连接失败 - 无法查询设备详情"); QMessageBox::warning(this, "错误", "无法连接到数据库"); return; } @@ -888,6 +945,7 @@ void MainWindow::onAddDeviceRequested(const QString &deviceType) void MainWindow::setupMapDisplay() { qDebug() << "Setting up map display..."; + SystemLogger::getInstance()->logInfo("开始设置地图显示"); // 创建WebEngineView来显示地图 QWebEngineView* webView = new QWebEngineView(m_ui->MapDisplayer); @@ -911,9 +969,11 @@ void MainWindow::setupMapDisplay() connect(webView, &QWebEngineView::loadFinished, this, [this](bool success) { if (success) { qDebug() << "Map loaded successfully, initializing device markers..."; + SystemLogger::getInstance()->logSuccess("地图加载完成"); QTimer::singleShot(1000, this, &MainWindow::initializeDeviceMarkersOnMap); } else { qDebug() << "Map loading failed!"; + SystemLogger::getInstance()->logError("地图加载失败"); } }); } @@ -976,6 +1036,7 @@ bool MainWindow::addDeviceToDatabase(const QString &deviceId, const QString &nam if (!db.open()) { qWarning() << "Failed to connect to database for adding device:" << db.lastError().text(); + SystemLogger::getInstance()->logError("数据库连接失败 - 无法添加设备"); return false; } diff --git a/src/Client/src/utils/SystemLogger.cpp b/src/Client/src/utils/SystemLogger.cpp new file mode 100644 index 00000000..7cb5bd89 --- /dev/null +++ b/src/Client/src/utils/SystemLogger.cpp @@ -0,0 +1,158 @@ +/** + * @file SystemLogger.cpp + * @brief 系统日志管理器单例类实现 + * @author Qt UI Developer Expert + * @date 2024-12-21 + * @version 1.0 + */ + +#include "utils/SystemLogger.h" +#include +#include +#include +#include +#include + +// 静态成员初始化 +SystemLogger* SystemLogger::s_instance = nullptr; +QMutex SystemLogger::s_mutex; + +SystemLogger::SystemLogger(QObject *parent) + : QObject(parent) + , m_consoleOutputEnabled(true) +{ + qDebug() << "SystemLogger instance created"; +} + +SystemLogger::~SystemLogger() +{ + qDebug() << "SystemLogger instance destroyed"; +} + +SystemLogger* SystemLogger::getInstance() +{ + // 双重检查锁定模式确保线程安全 + if (s_instance == nullptr) { + QMutexLocker locker(&s_mutex); + if (s_instance == nullptr) { + s_instance = new SystemLogger(); + } + } + return s_instance; +} + +void SystemLogger::destroyInstance() +{ + QMutexLocker locker(&s_mutex); + if (s_instance != nullptr) { + delete s_instance; + s_instance = nullptr; + } +} + +void SystemLogger::logDebug(const QString &message) +{ + log(Debug, message); +} + +void SystemLogger::logInfo(const QString &message) +{ + log(Info, message); +} + +void SystemLogger::logWarning(const QString &message) +{ + log(Warning, message); +} + +void SystemLogger::logError(const QString &message) +{ + log(Error, message); +} + +void SystemLogger::logSuccess(const QString &message) +{ + log(Success, message); +} + +void SystemLogger::log(LogLevel level, const QString &message) +{ + logInternal(level, message); +} + +void SystemLogger::setConsoleOutputEnabled(bool enabled) +{ + QMutexLocker locker(&m_logMutex); + m_consoleOutputEnabled = enabled; + + QString statusMsg = enabled ? "Console output enabled" : "Console output disabled"; + qDebug() << "SystemLogger:" << statusMsg; +} + +QString SystemLogger::getLevelString(LogLevel level) +{ + switch (level) { + case Debug: return "DEBUG"; + case Info: return "INFO"; + case Warning: return "WARNING"; + case Error: return "ERROR"; + case Success: return "SUCCESS"; + default: return "UNKNOWN"; + } +} + +void SystemLogger::logInternal(LogLevel level, const QString &message) +{ + // 线程安全保护 + QMutexLocker locker(&m_logMutex); + + // 输出到控制台(如果启用) + if (m_consoleOutputEnabled) { + outputToConsole(level, message); + } + + // 发出信号通知UI组件 + emit logAdded(level, message); +} + +void SystemLogger::outputToConsole(LogLevel level, const QString &message) +{ + QString timestamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz"); + QString levelStr = getLevelString(level); + QString logLine = QString("[%1] [%2] %3").arg(timestamp, levelStr, message); + + // 根据日志级别选择输出流 + switch (level) { + case Error: + // 错误输出到标准错误流 + std::cerr << logLine.toStdString() << std::endl; + break; + case Warning: + // 警告也输出到标准错误流 + std::cerr << logLine.toStdString() << std::endl; + break; + default: + // 其他级别输出到标准输出流 + std::cout << logLine.toStdString() << std::endl; + break; + } + + // 同时也输出到Qt的调试系统 + switch (level) { + case Debug: + qDebug().noquote() << logLine; + break; + case Info: + qInfo().noquote() << logLine; + break; + case Warning: + qWarning().noquote() << logLine; + break; + case Error: + qCritical().noquote() << logLine; + break; + case Success: + qInfo().noquote() << logLine; // 成功信息使用qInfo输出 + break; + } +} \ No newline at end of file