DevEco Studio如何联机收集设备中的崩溃日志

DevEco Studio如何联机收集设备中的崩溃日志 当设备联机后,是否可以导出设备中App运行时,产生的崩溃日志?

应该如何操作呢?

5 回复

【背景知识】

hilog:日志系统,提供给系统框架、服务、以及应用,用于打印日志,记录用户操作、系统运行状态等。开发者可以通过hilog命令行查询相关日志信息。

【解决方案】

应用崩溃后会有hilog存储在手机上,连接手机后通过HDC命令把hilog的日志导出到电脑上,具体操作命令参考如下:

  • 导出hilog日志到当前目录。
hdc file recv data/log/hilog/ ./
  • 导出Crash崩溃日志到当前目录。
hdc file recv data/log/faultlog/faultlogger/ ./

导出日志的方法目前就IDE导出或者HDC命令导出这两种方案。


当设备通过USB连接并开启调试模式后,可以导出鸿蒙应用运行时产生的崩溃日志。以下是实现方式和注意事项:

一、导出崩溃日志的核心方法

1.通过HDC命令行工具导出

  • 在开发者模式启用的情况下,使用以下命令从设备中提取崩溃日志:
hdc file recv /data/log/faultlog/faultlogger/ D:\目标路径
  • 导出的日志文件命名格式为:cppcrash-进程名-进程UID-时间戳.log。
  • 日志包含关键字段:设备信息、进程内存、崩溃原因、堆栈跟踪等(如搜索结果显示的故障日志字段表)。

2.通过DevEco Studio查看与导出

  • 实时查看:当应用崩溃时,DevEco Studio会弹出提示,点击 Jump to Log 可直接跳转到故障日志窗口。
  • 导出日志:
    • 右键选中日志节点 → Export FaultLog → 导出单个日志。
    • 点击 Export All FaultLog 导出全部日志。

二、关键配置与注意事项

1.设备调试配置

  • 必须开启开发者选项中的 USB调试 和 日志收集权限。
  • 若需结构化日志(如Cpp Crash),需使用 DevEco Studio 6.0.0 Beta1 及以上版本。

2.日志存储路径

  • 设备端日志默认存储在 /data/log/faultlog/ 目录下,包含 faultlogger(崩溃日志)和 temp(临时故障信息)。

3.日志分析工具

  • 代码行号定位:
    • 对于应用自身动态库,DevEco Studio 支持直接跳转到崩溃对应的代码行。
    • 其他场景可使用 SDK 中的 llvm-addr2line 工具解析堆栈中的偏移地址。

三、特殊场景处理

  • 调试模式屏蔽日志:

DevEco Studio 在调试时会自动屏蔽部分超时检测(如 THREAD_BLOCK_3S),避免干扰调试流程。

  • 崩溃日志结构化过滤:

针对 Cpp Crash 类型日志,可通过 IDE 的过滤功能快速定位关键字段(如故障特征哈希值 Fingerprint)。

总结

通过 HDC命令 或 DevEco Studio 均可导出崩溃日志,前者适合批量导出原始文件,后者提供交互式分析与跳转功能。需确保设备调试权限开启,并结合日志规格中的字段信息(如 Reason、HiTraceId)定位具体崩溃原因。

我们每次崩溃后重新打开APP,会捕获到上次崩溃异常,然后上传日志到远程服务器,后台统一管理崩溃

在DevEco Studio中,通过IDE的Log窗口实时查看设备崩溃日志。连接设备后,在底部面板选择"Logcat"标签页,筛选日志级别为Error或以上即可查看崩溃信息。如需导出完整日志,可使用"File > Save Logcat"功能保存日志文件。确保设备已开启USB调试模式并通过USB连接至开发机。

是的,可以通过DevEco Studio联机收集设备中的崩溃日志。具体操作如下:

  1. 使用USB连接设备并开启调试模式。
  2. 在DevEco Studio中打开Logcat窗口(View > Tool Windows > Logcat)。
  3. 选择目标设备及对应应用进程。
  4. 通过过滤器设置日志级别为“Error”或关键词“crash”筛选崩溃信息。
  5. 右键日志可导出为文本文件进行分析。

此方式适用于实时抓取运行时的崩溃日志。若需历史日志,需确保设备此前已开启日志记录功能。

回到顶部