封装的系统化知识整理2——升级版日志输出法:hilog方法封装为Logger类

459 阅读2分钟

一、写作目的

写这篇总结,主要目的有二

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

二、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:可变参数。

image.png 在EntryAbility.ets中常见此方法

1715266125682.png

(3)AlertDialog.show():持久弹窗提示

通过弹框的形式在模拟器中输出要显示的内容,弹窗持久存在,白色底色

典型格式:

AlertDialog.show({ message: '完整路径' + fullPath })

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

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

典型格式:

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

五、总结

  1. 在使用模拟机调试的情况下,用hilog封装后的Logger类方法输出日志数据,有利于过滤想要的日志
  2. 临时的调试可用AlertDialog.show(),在模拟器中持久显示要查看的信息,但是正式上线程序时要注释隐藏
  3. 对于程序中必须一直存在的提示内容,使用临时显示的弹窗promptAction.showToast()提示为宜,正式上线程序时可以仍然保留