From dfb6be93ddd3d65247085a1e6caf148fdfd9f955 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Tue, 8 Oct 2024 17:25:02 +0800 Subject: [PATCH] =?utf8?q?=E7=B3=BB=E7=BB=9F=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?utf8?q?=E7=B3=BB=E7=BB=9F=E5=BC=80=E5=85=B3=E6=9C=BA=E6=97=A5=E5=BF=97?= =?utf8?q?=E7=9A=84=E5=AD=98=E5=82=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/system/include/SystemLogModel.h | 14 ++++------ .../nativeui/system/src/SystemLogModel.cpp | 28 ++++++++++++------- .../debug_output_notification.cpp | 3 +- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemLogModel.h b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemLogModel.h index f80b8e3b1..63022c950 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemLogModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemLogModel.h @@ -1,10 +1,8 @@ #ifndef SystemLog_MODEL_H #define SystemLog_MODEL_H - #include -#include - +#include namespace OHOS { enum class SystemLogType { POWER_ON = 0, // 开机 @@ -15,8 +13,8 @@ enum class SystemLogType { }; struct SystemLogData { - SystemLogType type; //类型 - uint32_t timestamp; //时间戳 + SystemLogType type; // 类型 + uint32_t timestamp; // 时间戳 }; class SystemLogModel { @@ -30,9 +28,9 @@ public: bool loadLog(); // 获取日志记录 - std::vector getLogData(); + const std::deque &getLogData() const; // 返回 deque 的常量引用 - size_t getLogSize(); + size_t getLogSize() const; // 返回日志数量 uint32_t GetCurrentTime(); @@ -44,7 +42,7 @@ private: SystemLogModel(const SystemLogModel &) = delete; SystemLogModel &operator=(const SystemLogModel &) = delete; - std::vector logData; // 用于存储日志数据 + std::deque logData; // 用于存储日志数据 }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemLogModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemLogModel.cpp index 208c1fb72..3336cdd2e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemLogModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemLogModel.cpp @@ -10,13 +10,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #define SYSTEM_LOG_FILE_PATH "/system/system_log.txt" @@ -61,15 +61,14 @@ uint32_t SystemLogModel::GetCurrentTime() { return time; } -//保存日志 // 保存日志 bool SystemLogModel::saveLog(SystemLogData data) { // 将新日志添加到日志数据 logData.push_back(data); // 如果超过限制,删除最早的日志 - if (logData.size() > 50) { - logData.erase(logData.begin()); + while (logData.size() > 50) { + logData.pop_front(); // 从前端删除最早的日志 } // 将所有日志写入文件 @@ -98,20 +97,29 @@ bool SystemLogModel::loadLog() { logData.clear(); SystemLogData data; - int type; + int type; while (ifs >> type >> data.timestamp) { - data.type = static_cast(type); // 转换为 SystemLogType - logData.push_back(data); // 将读取的日志数据存入 logData + data.type = static_cast(type); + logData.push_back(data); } + + // // 如果超过限制,删除最早的日志 + // while (logData.size() > 50) { + // logData.pop_front(); // 从前端删除最早的日志 + // } + WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "Loaded %d logs from file", logData.size()); return true; } -// 获取日志记录 -std::vector SystemLogModel::getLogData() { return logData; } + +// 获取日志记录,返回deque +const std::deque &SystemLogModel::getLogData() const { + return logData; +} // 获取日志大小 -size_t SystemLogModel::getLogSize() { return logData.size(); } +size_t SystemLogModel::getLogSize() const { return logData.size(); } } // namespace OHOS \ No newline at end of file diff --git a/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp b/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp index b82b3de92..8a83b9197 100644 --- a/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp @@ -42,6 +42,7 @@ #include #include #include +#include namespace OHOS { @@ -208,7 +209,7 @@ namespace OHOS return "目前没有日志"; } - std::vector systemlogs = logModel->getLogData(); + std::deque systemlogs = logModel->getLogData(); std::ostringstream str; for (int i = 0; i < logSize; i++) -- 2.17.1