【鸿蒙开发】第三十二章 DevEco Studio - 日志HiLog分析汇总

1 HiLog界面

DevEco Studio提供了“Log > HiLog”窗口查看设备当前所有应用实时打印的日志信息。

HiLog默认显示的日志为以下6个部分:

第一列

第二列

第三列

第四列

第五列

第六列

Timestamp

PID-TID

Domain/Processname/Tag

PackageName

LogLevel

Message

时间戳

进程ID和线程ID

日志标签

应用包名

日志级别

日志内容

通过设置包名、日志级别和搜索关键词来筛选日志信息,还可以使用自定义日志显示格式、日志导出、显示最新日志等功能。

HiLog窗口左侧各个按钮的作用为:

  • :单击该按钮可以向上翻页,日志窗口取消自动滚动。
  • :单击该按钮可以向下翻页,日志窗口取消自动滚动。如果翻页已到底部,日志窗口自动滚动。
  • :当该按钮处于选中状态时,日志自动换行显示,否则日志按行显示。
  • :当该按钮处于选中状态时,日志自动滚动到窗口底部,否则停留在当前日志显示处。
  • :单击该按钮可以重新开启日志接收,会重新加载设备缓存日志。
  • :单击该按钮可以选择清空窗口日志或清空设备缓存
  • : 单击该按钮可以对当前选择的设备屏幕进行截屏,并保存在本地。
  • : 单击该按钮可以对当前选择的设备进行录屏,并保存在本地。
  • :单击该按钮可以保存日志缓存到指定文件(在线日志)或保存离线日志文件(离线日志)。
  • :单击该按钮可以自动选择和切换已连接的设备
  • :单击该按钮可以切换日志视图以及自定义日志格式。
  • :单击该按钮可以关闭当前日志窗口。
  • :单击该按钮可以跳转到HiLog日志相关的在线帮助文档

2 过滤日志

按关键字过滤日志

在HiLog搜索框中输入希望过滤的信息,即可过滤显示所有包含此信息的日志。

按钮表示过滤是否区分大小写按钮表示是否按照正则表达式匹配过滤。

使用默认提供的过滤配置

HiLog提供多种默认的过滤模式,开发者不需要反复输入关键字过滤日志信息,只需要切换相应的过滤项,即可快速过滤所需的日志。

  • All logs of selected app:按照应用进程过滤日志。
  • User logs of selected app:按照应用进程过滤用户输出的日志。

当选择All logs of selected app或User logs of selected app时,进程过滤下拉框处于可选状态,可选择相应的选项过滤想查看的进程日志。

说明

由于设备启动时,USB调试开关没有开启,部分系统应用没注册上,Hilog进程列表无法显示未注册上的系统应用,如需查看此部分的日志,可以按关键字过滤查看,或者保持USB调试开关打开的状态,重启设备。

进程选择窗口可输入PID或应用名的关键字搜索要过滤的进程。

按日志级别过滤日志

HiLog提供日志级别过滤以过滤某一级别及以上的日志。日志级别分为Debug、Info、Warn、Error、Fatal五个级别。

如选择Warn级别,则过滤展示Warn级别与Warn级别以上的日志信息,即展示Warn、Error、Fatal3个级别。

按自定义过滤项过滤日志

除默认过滤项外,Hilog还提供配置自定义过滤项的途径以供开发者按照实际需求过滤日志,并保存此过滤配置以供重复使用。

点击Config custom filter时将弹出自定义过滤配置窗口。

先前介绍的过滤选项此处均可配置,同时增加了Package name和Set to all projects配置项。

  • Set to all projects:此配置当前工程及其他所有工程均可用。
  • Package name:按应用包名过滤日志。

当配置完后将自动切换至此过滤配置。

切换至此自定义配置时,日志级别过滤窗口和关键字过滤窗口将在此自定义配置过滤出的日志的基础上再进行过滤。

3 自定义日志显示格式

开发者可以通过配置自定义格式,限制每条日志只显示用户关注的信息。

点击左侧图标,将弹出自定义格式窗口。

  • Standard Views:默认显示所有信息。
  • Compact Views:默认显示日志级别与日志信息。
  • Modify Views:进入“Hilog Format”窗口后,可以按照需要自定义日志格式。

在“Hilog Format”中自定义日志格式:

  • Use as default view for new windows:新建的HiLog窗口以Standard模式显示还是以Compact模式显示,新建后开发者可再自行切换其显示模式。
  • Show timestamp:是否显示日期时间 。

    Format:Datetime/Time 显示日期时间/只显示时间。

  • Show process id:是否显示PID-TID 。

    Include thread id:是否显示TID。

  • Show domain/processname/tags:是否显示domain/processname/tags 。

    Tag column width:domain/processname/tags列的最大宽度,超长信息将会缩略显示并以ToolTip形式显示完整信息。

  • Show package names:是否显示应用包名。

    Package column width:包名列的最大宽度,超长信息将会缩略显示并以ToolTip形式显示完整信息。

4 超长日志自动换行

当日志的消息过长时,日志窗口可能不能完整显示日志消息,需要拖动滚动条查看信息。此时开发者可以点击Soft-Warp按钮控制日志消息自动换行。

图1 未开启自动换行

图2 开启自动换行

5 显示最新日志

设备输出的日志信息会实时刷新到HiLog窗口底部,用户可点击Scroll to End按钮使Hilog一直显示底部的最新日志信息。当观察到需要的日志时,点击HiLog窗口,即可停止滚动,停留在当前行,以便查看日志信息。

6 导出日志信息

用户可将经上述步骤过滤后的关键日志信息保存到本地,以便后续的进一步分析。

点击Export HiLog按钮,在弹出的Export HiLog To窗口中选择保存路径。

7 清除日志缓存

与日志相关的缓存有两个:设备端日志缓存、HiLog窗口缓存

HiLog显示日志信息的流程为:

  1. 应用输出日志信息至设备端日志缓存;
  2. Log组件将设备端日志缓存取出,保存在HiLog窗口缓存中;
  3. HiLog窗口根据过滤条件,将HiLog窗口缓存中的消息显示窗口在界面中。

点击Clear按钮,将弹出两个选项Clear Console Log、Clear Device Log。

  • Clear Console Log:清除HiLog窗口缓存

    此操作只清空HiLog窗口缓存,Log组件将重新从设备端日志缓存读取日志消息,因而执行清除操作前已保存在设备端日志缓存的日志消息会显示到HiLog窗口中。

  • Clear Device Log:清除设备侧日志缓存

    此操作将清除设备端日志缓存和HiLog窗口缓存。HiLog窗口将显示执行清除操作后,新输出至设备端缓存的日志信息。

8 设置HiLog窗口缓存

HiLog窗口显示的日志信息保存在此窗口的缓存中,缓存的大小决定了当前窗口能显示的日志信息的最大数量,当日志超出缓存上限时,窗口中最早的日志将会被清除,新日志在窗口底部输出。开发者可以自行设置窗口的缓存大小。

点击Settings > Buffer,进入缓存设置窗口

默认缓存大小为4096K,变更缓存大小需重启HiLog窗口后生效。

重启HiLog窗口操作:先点击下方的按钮,再点击上方的按钮中的Online Log即可。

当日志量超出缓存时,顶部的旧日志不断被清除,因而顶部日志信息处于不停滚动的状态。此时若想查看此处的日志信息,可在窗口点击右键,勾选Pause Output暂停窗口打印,查看完后再取消勾选,重新开始打印日志。

9 设置设备端日志缓存

使用hdc shell hilog -g命令可查看当前设备端设置的日志缓存,默认为256K。

使用hdc shell hilog -G命令可更改设备端日志缓存大小。

配合-t参数可单独设置某一类型的日志缓存大小。

超出设备端缓存日志将被落盘于设备data/log/hilog路径下,开发者可在此目录下载历史hilog日志并查看。

9 查看/导出设备离线日志

DevEco Studio提供查看设备离线日志的功能,支持查看设备中/data/log/hilog路径中的日志,离线日志窗口中展示的是经过解析和DevEco Studio格式化之后的日志。

点击HiLog窗口左上角New,随后点击Offline Log即可打开离线日志窗口。

离线日志窗口左边工具栏中的按钮、日志级别下拉框和搜索框和在线日志的功能一致,设备下拉框仅支持选择真机和模拟器。

离线日志支持通过时间筛选设备上的日志文件,默认时间范围为打开窗口时的前三十分钟,除显示格式外,也支持通过键入yyyyMMddHHmm后回车进行时间输入。

在输入时间之后,日志文件下拉框会进行刷新,点击文件会从设备端下载并自动解析后输出到离线日志窗口。

由于最新的日志文件内容还在更新中,在达到设定的大小前,内容会不断增多。如果重新打开离线日志窗口或者修改时间,日志文件列表都会刷新,会从设备端重新下载最新的日志文件,解析的内容会更多。

离线日志窗口能输出的文本量可参考设置HiLog窗口缓存进行设置,设置较小可能无法显示选择文件的所有日志,推荐设置6M(6144K)。

通过设置窗口的缓存大小可能无法展示完整的日志,可点击左侧工具栏的保存按钮导出离线日志,支持导出解析后未经DevEco Studio格式化的原始日志文件,导出的文件可以看到完整日志。

### 如何在 DevEco Studio 中进行前端调试 #### 使用预览器进行快速调试 对于前端代码的调试,尤其是UI部分,可以利用DevEco Studio内置的预览器功能。这允许开发者即时看到界面上的变化而无需经历完整的编译和安装流程[^2]。 ```xml <!-- 示例:简单的XML布局文件 --> <LinearLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:height="match_parent" ohos:width="match_parent" ohos:orientation="vertical"> <!-- 可在此处添加组件并立即查看效果 --> </LinearLayout> ``` 当修改上述类型的XML布局文件时,任何更改都会被实时反映到预览窗口中,从而极大地提高了开发效率。 #### 调试JavaScript代码 针对HarmonyOS应用中的JS逻辑层代码,可以通过连接设备或启动模拟器来进行断点调试。具体操作如下: - 打开项目内的`.js`文件; - 设置所需的断点; - 启动调试会话(Run -> Debug),选择目标设备; - 应用将在遇到第一个断点时暂停执行,此时可以在右侧的Variables面板观察变量状态,并逐步单步执行代码来跟踪程序流。 这种交互式的调试方式有助于更深入地理解应用程序的行为模式以及定位潜在问题所在。 #### 日志输出辅助调试 除了图形化的调试工具外,合理运用日志记录也是不可或缺的一部分。通过向代码中插入适当的Log语句可以帮助追踪函数调用顺序、参数传递情况等重要信息。 ```javascript // JavaScript示例:打印日志以便于后续排查错误 console.log('Function called with argument:', arg); ``` 这些日志消息会在控制台输出区域显示出来,方便开发者随时查阅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值