HarmonyOS 怎样打印log
HarmonyOS提供了HiLog日志系统,所以我们可以使用HiLog 来打印日志
从HiLog的源码可以看到里面有一个HiLogLabel
下面在跳到HiLogLabel 里面看看
里面有三个参数,type ,domain ,tag
所有我们要想使用HiLog ,需要想创建一个HiLogLabel 里面填写下类型
通过一个源码我们我就写了一个简单的打印如下
这个1 怎么变成00001 了,看着像16进制的数据,看到这里就搞不懂了,感觉这么麻烦呢,每次换要new 一下, 所以我就去官方文档瞅瞅,
看了半天这个HiLogLabel 是不能缺少的 不过还是说下它的详细使用
HiLogLabel 详情
HiLogLabel(int type, int domain, String tag) 里面三个参数的含义
1 参数type:用于指定输出日志的类型。HiLog中当前只提供了一种日志类型,即应用日志类型LOG_APP。
2 参数domain:用于指定输出日志所对应的业务领域,取值范围为0x0~0xFFFFF,开发者可以根据需要进行自定义。(注意这里明确说是16进制的所以写的使用尽量使用16进制的,使用这个搜索log感觉比较方便一些,比如 这个HiLog.error(new HiLogLabel(HiLog.DEBUG ,0x00000, "Log"),"打印一个log"); 过滤的时候直接搜索5个0即可)
3 参数tag:用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。
输入日志的级别
HiLog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别,并提供了对应的方法用于输出不同级别的日志,如下表所示。
表1 HiLog提供的主要接口
接口名 | 功能描述 |
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个或多个参数,是格式字符串中参数类型对应的参数列表。参数的数量、类型必须与格式字符串中的标识一一对应。
demo 练习HiLog的使用
package com.example.myapplication.slice;
import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
public class MainAbilitySlice extends AbilitySlice {
private static final HiLogLabel hilog = new HiLogLabel(HiLog.DEBUG ,0x0000, "Log");
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_main_layout);
HiLog.error(hilog,"打印一个log");
}
@Override
public void onActive() {
super.onActive();
}
@Override
public void onForeground(Intent intent) {
super.onForeground(intent);
}
}
打印结果