智能客服
你问我答,随时在线为你解决问题
您当前浏览的3.1/4.0版本文档归档不再维护,推荐您使用最新的HarmonyOS NEXT版本文档。详细请参考文档维护策略变更。
DevEco Studio的日志系统包括HiLog日志和FaultLog日志系统,其中:
在输出日志前,需要先调用isLoggable确认某个domain、tag和日志级别是否被禁止打印日志。使用示例:
- hilog.isLoggable(0x0000, "testTag", hilog.LogLevel.INFO);
hilog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别,并提供了对应的方法用于输出不同级别的日志,如下表所示:
接口名 | 功能描述 |
|---|---|
debug(domain: number, tag: string, format: string, ...args: Array<Object>) | 输出DEBUG级别的日志。DEBUG级别日志表示仅用于应用/服务调试。 可以在DevEco Studio的terminal窗口或cmd里,通过命令“hdc shell hilogcat”设置可打印日志的等级为DEBUG。 |
info(domain: number, tag: string, format: string, ...args: Array<Object>) | 输出INFO级别的日志。INFO级别日志表示普通的信息。 |
warn(domain: number, tag: string, format: string, ...args: Array<Object>) | 输出WARN级别的日志。WARN级别日志表示存在警告。 |
error(domain: number, tag: string, format: string, ...args: Array<Object>) | 输出ERROR级别的日志。ERROR级别日志表示存在错误。 |
fatal(domain: number, tag: string, format: string, ...args: Array<Object>) | 输出FATAL级别的日志。FATAL级别日志表示出现致命错误、不可恢复错误。 |
每个参数需添加隐私标识,分为{public}或{private},默认为{private}。{public}表示日志打印结果可见;{private}表示日志打印结果不可见,输出结果为<private>。
调试时可以通过命令“hilog -p off”指令,关闭隐私开关,明文显示private日志内容。
以输出一条INFO级别的信息为例,示例代码:
- hilog.info(0xFF00, "testTag", "%{public}s World %{public}d", "hello", 3);
该行代码表示输出一个普通信息,格式字符串为:”%{public}s World %{public}d”。其中变参"%{public}s"为公共的字符串;%{public}d为公共的整型数。
DevEco Studio提供了“Log > HiLog”窗口查看日志信息,开发者可通过设置设备、进程、日志级别和搜索关键词来筛选日志信息。搜索功能支持使用正则表达式,开发者可通过搜索自定义的业务领域值和TAG来筛选日志信息。
根据实际情况选择了设备和进程后,搜索标签“testTag”进行筛选,得到对应的日志信息。

结果输出:
- 10-27 10:07:04.456 20680-20939/com.example.myapplication I 0FF00/testTag: hello World 3
HiLog窗口左侧各个按钮的作用为:
:单击该按钮可以向上翻页,日志窗口取消自动滚动。
:单击该按钮可以向下翻页,日志窗口取消自动滚动。如果翻页已到底部,日志窗口自动滚动。
:当该按钮处于选中状态时,日志自动换行显示,否则日志按行显示。
:当该按钮处于选中状态时,日志自动滚动到窗口底部,否则停留在当前日志显示处。
:单击该按钮可以重新开启日志接收,会清空日志缓存和窗口日志。
:单击该按钮可以清空窗口日志。
: 单击该按钮可以对当前选择的设备屏幕进行截屏,并保存在本地。不支持对包含密码输入的界面进行截屏。
:单击该按钮可以保存日志缓存到指定文件。
:自动选择和切换已连接的设备。
:过滤只展示App日志。
:单击该按钮可以关闭当前日志窗口。
在按钮中增加一个单击事件,单击按钮时打印一条日志。
本示例采用ArkTS语言为例,使用JS语言开发仅在UI部分代码有所不同,hilog部分代码通用。
- // index.ets
-
- import hilog from '@ohos.hilog';
-
- @Entry
- @Component
- struct Index {
- build() {
- Row() {
- Column() {
- // 添加按钮,以响应用户点击
- Button() {
- Text('Next')
- .fontSize(30)
- .fontWeight(FontWeight.Bold)
- }
- .type(ButtonType.Capsule)
- .margin({
- top: 20
- })
- .backgroundColor('#0D9FFB')
- .width('40%')
- .height('5%')
- // 跳转按钮绑定onClick事件,点击时打印日志
- .onClick(() => {
- hilog.isLoggable(0xFF00, "testTag", hilog.LogLevel.INFO);
- hilog.info(0xFF00, "testTag", "%{public}s World %d", "hello", 3);
- })
- }
- .width('100%')
- }
- .height('100%')
- }
- }
选择当前的设备及进程,日志级别选择Info,搜索内容设置为“testTag”。此时窗口仅显示符合条件的日志。

FaultLog是由系统自动从设备进行收集,包括如下四类故障信息:
FaultLog故障信息如下图所示,支持按照应用包名进行过滤、日志刷新、日志导出等功能。

如上图所示,FaultLog故障信息左侧按照应用/服务包名 > 故障类型 > 故障时间结构组成,选中具体的故障日期,则会在右侧展示详细的故障信息,便于开发者进行故障定位。