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 ! ! !