HarmonyOS 怎样打印log

HarmonyOS提供了HiLog日志系统,所以我们可以使用HiLog 来打印日志

从HiLog的源码可以看到里面有一个HiLogLabel

harmonyos怎么看log_harmonyos怎么看log

下面在跳到HiLogLabel 里面看看

harmonyos怎么看log_harmonyos怎么看log_02

里面有三个参数,type ,domain ,tag

所有我们要想使用HiLog ,需要想创建一个HiLogLabel 里面填写下类型

通过一个源码我们我就写了一个简单的打印如下

harmonyos怎么看log_字符串_03

这个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);
    }
}

打印结果

harmonyos怎么看log_ide_04