HarmonyOS_Next组件中如何封装打印hilog方法为Logger类

118 阅读2分钟

一、写作目的

写这篇总结,主要是记录下封装hilog方法

  • 一是为了巩固封装的基础知识
  • 二是为了给后续的实践测试提供更精确的辅助工具

二、Logger封装的原因

主要为了封装hilog日志输出方法

hilog有四个方法,集中写至一个封装类中,可便于方法的复用,也有利于代码的管理。

在通过底部日志栏查询日志时,也能通过特定的方法以及tag参数筛选出要查询的日志

三、Logger代码

import { hilog } from '@kit.PerformanceAnalysisKit'
​
const DOMAIN = 0x0000  // 表示域
const TAG = 'mylog'  // 表示过滤的日志关键字
const FORMAT = '%{public}s %{public}s'
​
export class Logger{
  //1.0 封装info这几个静态方法
  static info(...args:string[]){
    hilog.info(DOMAIN,TAG,FORMAT,...args)
  }
  //1.0 封装debug这几个静态方法
  static debug(...args:string[]){
    hilog.debug(DOMAIN,TAG,FORMAT,...args)
  }
  //1.0 封装info这几个静态方法
  static warn(...args:string[]){
    hilog.warn(DOMAIN,TAG,FORMAT,...args)
  }
  //1.0 封装info这几个静态方法
  static error(...args:string[]){
    hilog.info(DOMAIN,TAG,FORMAT,...args)
  }
​
}

四、方法评价

与console.log()方法相近,可以与AlertDialog.show()、promptAction.showToast()等方法替换使用,但也有细微区别,以下是简单的对比分析:

对比:

(1)console.log():使用较便捷

括号中可填2个参数,第一个是说明(选填),第二个要输出的日志内容(必填)

(2)hilog系列方法:功能较强

hilog.info(DOMAIN,TAG,FORMAT,...args)

参数说明:

DOMAIN:域。

TAG:标签。参数tag可用于过滤,而info、debug、warn、error四种方法的可以对应多种实际情况,也可以不同颜色和表大写因为字母突出表示与分类。

FORMAT:输出格式。

...args:可变参数。

3.jpg

在EntryAbility.ets中常见此方法:

4.jpg

promptAction.showToast():临时弹框提示

通过弹框的形式在在模拟器中输出要显示的内容,弹窗短暂存在,灰黑底色

典型格式:


promptAction.showToast({ message: "头像上传成功" })

五、总结

1、在使用模拟机调试的情况下,用hilog封装后的Logger类方法输出日志数据,有利于过滤想要的日志。

2、临时的调试可用AlertDialog.show(),在模拟器中持久显示要查看的信息,但是正式上线程序时要注释隐藏。

3、对于程序中必须一直存在的提示内容,使用临时显示的弹窗promptAction.showToast()提示为宜,正式上线程序时可以仍然保留。