本文介绍在鸿蒙应用开发过程中日志的使用方法。


HiLog


日志输出代码

开发者可以在Java代码中使用日志输出必要的信息。例如为了监视Slice的生成和销毁,我们增加如代码中所示的日志输出代码:

package com.example.helloharmony.slice;
import com.example.helloharmony.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
public class MainAbilitySlice extends AbilitySlice {
static final HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, 0x12345, "MainAbilitySlice");
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//组件画面迁移按钮
Button component_button = (Button) findComponentById(ResourceTable.Id_component_view);
component_button.setClickedListener(listener -> present(new ComponentAbilitySlice(), new Intent()));
//列表画面迁移按钮
Button list_button = (Button) findComponentById(ResourceTable.Id_list_view);
list_button.setClickedListener(listener -> present(new ListAbilitySlice(), new Intent()));
//标签页画面迁移按钮
Button tab_button = (Button) findComponentById(ResourceTable.Id_tab_view);
tab_button.setClickedListener(listener -> present(new TablistAbilitySlice(), new Intent()));
// 打印一条日志
HiLog.info(label, "MainAbilitySlice.onStart!");
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
@Override
public void onStop() {
super.onStop();
// 打印一条日志
HiLog.info(label, "MainAbilitySlice.onStop!");
}
}

第11行用来定义日志输出过程中用来表明日志来源的标签对象,它的三个参数分别是type、domain和tag。HiLog中当前只提供了一种日志类型,即应用日志类型LOG_APP;而domain用于指定输出日志所对应的以后业务领域,取值范围为0x0~0xFFFFF,开发者可以根据需要进行自定义;tag用于指定日志标识,可以为任意字符串,鸿蒙系统建议标识调用所在的类或者业务行为。开发者可以根据自定义参数domain和tag来进行日志的筛选和查找。

鸿蒙系统中一共支持五种级别的日志,分别是DEBUG、INFO、WARN、ERROR和FATAL,对于不同级别的日志,系统提供了不同的方法。例如INFO对应的方法就是info。

代码中第26行和第40行分别在onStart和onStop方法中输出了调试信息。用相同的方法我们可以为所有的Slice增加日志输出代码之后执行代码,日志窗口的输出如下:

自学鸿蒙应用开发(19)- 输出日志_应用开发

DevEco Studio提供了HiLog窗口查看日志信息,开发者可通过设置设备、进程、日志级别和搜索关键词来筛选日志信息。搜索功能支持使用正则表达式,开发者可通过搜索自定义的业务领域值和TAG来筛选日志信息。