作者:韩茹

公司:程序咖(北京)科技有限公司

鸿蒙巴士专栏作家

HarmonyOS提供了HiLog日志零碎,让利用能够依照指定类型、指定级别、指定格局字符串输入日志内容,帮忙开发者理解利用的运行状态,更好地调试程序。

输入日志的接口由HiLog类提供。在输入日志前,须要先调用HiLog的辅助类HiLogLabel定义日志标签。

一、定义日志标签

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

static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG"); 
  • 参数type:用于指定输入日志的类型。HiLog中以后只提供了一种日志类型,即利用日志类型LOG_APP。
  • 参数domain:用于指定输入日志所对应的业务畛域,取值范畴为0x0~0xFFFFF,开发者能够依据须要进行自定义。
  • 参数tag:用于指定日志标识,能够为任意字符串,倡议标识调用所在的类或者业务行为。

开发者能够依据自定义参数domain和tag来进行日志的筛选和查找。

二、输入日志

HiLog中定义了DEBUG、INFO、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}示意日志打印后果不可见,输入后果为<private>。

  • 参数args:能够为0个或多个参数,是格局字符串中参数类型对应的参数列表。参数的数量、类型必须与格局字符串中的标识一一对应。

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

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

该行代码示意输入一个日志标签为label的正告信息,格局字符串为:“Failed to visit %{private}s, reason:%{public}d.”。其中变参url的格局为公有的字符串,errno为公共的整型数。

三、查看日志信息

DevEco Studio提供了HiLog窗口查看日志信息,开发者可通过设置设施、过程、日志级别和搜寻关键词来筛选日志信息。搜寻性能反对应用正则表达式,开发者可通过搜寻自定义的业务畛域值和TAG来筛选日志信息。

如示例所示,依据理论状况抉择了设施和过程后,搜寻业务畛域值“00201”进行筛选,失去对应的日志信息。

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