HarmonyOS提供了HiLog日志系统,让应用可以按照指定类型、指定级别、指定格式字符串输出日志内容,帮助开发者了解应用的运行状态,更好地调试程序。

配置辅助类HiLogLabel:

使用HiLogLabel(int type, int domain, String tag)定义日志标签,其中包括了日志类型、业务领域和TAG。例:

HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00000, "Tag"); 

  • 参数type:指定输出日志的类型。目前只提供了一种日志类型应用日志类型LOG_APP。
  • 参数domain:指定日志所对应的业务领域,取值范围为0x0~0xFFFFF
  • 参数tag:用于指定日志标识,就是日志的tag

可以根据domain和tag筛选目标日志

日志输出:

HiLog中定义了INFO、DEBUG、WARN、ERROR、FATAL五种日志级别,如下表所示。

接口名

功能描述

debug​(HiLogLabel label, String format, Object... args)

输出DEBUG级别的日志。DEBUG级别日志表示仅用于应用调试,默认不输出,输出前需要在设备的“开发人员选项”中打开“USB调试”开关。

info​(HiLogLabel label, String format, Object... args)

输出INFO级别的日志。INFO级别日志表示普通的信息。

warn​(HiLogLabel label, String format, Object... args)

输出WARN级别的日志。WARN级别日志表示存在警告。

error​(HiLogLabel label, String format, Object... args)

输出ERROR级别的日志。ERROR级别日志表示存在错误。

fatal​(HiLogLabel label, String format, Object... args)

输出FATAL级别的日志。FATAL级别日志表示出现致命错误、不可恢复错误。

  • 参数label:定义好的HiLogLabel标签。
  • 参数format:格式化字符串用于输出日志。格式字符串中可以设置多个占位符,例如格式字符串为“Failed to visit %s.”,其中“%s”为参数类型为string的占位符,具体取值在args中定义。

    每个参数需添加隐私标识,分为{public}或{private},默认为{private}。{public}表示日志打印结果可见;{private}表示日志打印结果不可见,输出结果为。

  • 参数args:可以为0个或多个参数,是格式化字符串中占位符对应的参数列表。参数的数量、类型必须与格式化字符串中的占位符一一对应。

以输出一条WARN级别的信息为例,示例代码:

HiLog.warn(LABEL, "Failed to visit %{private}s, reason:%{public}d.", url, errno);

输出:Failed to visit , reason:503.

该行代码表示输出一个日志标签为label的警告信息,格式字符串为:“Failed to visit %{private}s, reason:%{public}d.”。其中url的格式为私有不可见的字符串,errno为可见的整型数。

查看日志信息

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

如示例所示,根据实际情况选择了设备和进程后,搜索业务领域值“00201”进行筛选,得到对应的日志信息。

结果输出:

01-20 16:08:36.908 23597-23597/com.example.myapplication W 00201/MY_TAG: Failed to visit , reason:503.

  • W表示日志级别为WARN。
  • 00201/MY_TAG为开发者在HiLogLabel中定义的内容。
  • 日志内容中的url为私有参数不显示具体内容,仅显示。errno为公有参数,显示实际取值503。

我是码农,学习使我快乐,GO ! ! ! 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐