HarmonyOS开发:封装一个便捷的Log工具类

前言

日志打印,没什么好说的,系统已给我们提供,且调用也是非常的简单,我们封装的目的,一是扩展 ,打印一些不常见的类型,比如格式化json,使得日志看起来比较好看,二是,控制日志的开关 ,使其动态开启打印和关闭打印,三是,简化代码,使其调用起来更加的方便。

如下图所示,便是我们封装之后的打印效果。

本章的内容大致如下,关于源码解析,我们放到下篇文章概述。

1、Log工具快速使用

2、全局初始化

3、基本打印

4、开源地址

一、Log工具快速使用

目前Log工具类已经开源,在源码中的README中已经做了很详细的介绍,当然了,你也可以按照如下的方式进行快速使用。

私服和远程依赖 ,由于权限和审核问题,预计需要等到2024年第一季度面向所有开发者,所以,暂时只能使用本地静态共享包 和源码两种使用方式,本地静态共享包类似Android中的aar依赖,直接复制到项目中即可。

1、本地静态共享包har包使用

首先,下载har包,点击下载

下载之后,把har包复制项目中,目录自己创建,如下,我创建了一个libs目录,复制进去。

引入之后,进行同步项目,点击Sync Now即可,当然了你也可以,将鼠标放置在报错处会出现提示,在提示框中点击Run 'ohpm install'。

需要注意,@app/log,是用来区分目录的,可以自己定义,比如@aa/bb等,关于静态共享包的创建和使用,请查看如下我的介绍,这里就不过多介绍。

HarmonyOS开发:走进静态共享包的依赖与使用

2、源码直接使用

下载源码后,直接把源码中log这个module复制到项目中,直接引用即可:

引入之后,进行同步项目,点击Sync Now即可,当然了你也可以,将鼠标放置在报错处会出现提示,在提示框中点击Run 'ohpm install'。

如果您的DevEco Studio低于4.0,您需要更改log模块里的hvigorfile.ts文件。

修改前

TypeScript 复制代码
import { harTasks } from '@ohos/hvigor-ohos-plugin';

export default {
  system: harTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
  plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */
}

修改后

TypeScript 复制代码
export { harTasks } from '@ohos/hvigor-ohos-plugin';

并需要进行模块的引入,在跟项目中build-profile.json5文件里添加如下:

json 复制代码
{
  "app": {
    "signingConfigs": [],
    "compileSdkVersion": 9,
    "compatibleSdkVersion": 9,
    "products": [
      {
        "name": "default",
        "signingConfig": "default"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    },
    {
      "name": "log",
      "srcPath": "./log"
    }
  ]
}

3、查看是否引用成功

无论使用哪种方式进行依赖,最终都会在使用的模块中,生成一个oh_modules文件,并创建源代码文件,有则成功,无则失败,如下:

二、全局初始化

初始化仅需要初始化一次即可,可以在AbilityStage进行,目前初始化中均有默认值,如果您使用默认值,就无需进行初始化。初始化采用的是对象参数传递形式,其参数您可以按实际需要进行传递,如果想和默认值保持一致,有些参数就可以省略。

TypeScript 复制代码
Log.init({
  tag: "HarmonyOSLog",
  domain: 0x0000,
  close: false,
  isHilog: true,
  showLogLocation: true,
  logSize: 800
})

初始化参数介绍

属性 类型 概述
tag string 打印的标签,默认为: HarmonyOSLog
domain number 输出日志所对应的业务领域,默认为0x0000
close boolean 是否关闭打印,默认true为打开,false为不打印
isHilog boolean 打印类型,默认为true是hilog打印 ,false为console
mShowLogLocation boolean 是否展示点击的位置,默认为true是展示 ,false为不展示
logSize number 日志每次输出大小,最大1024字节

二、基本打印

统一标签打印

使用统一标签进行打印,直接传递打印内容即可。

TypeScript 复制代码
Log.info("我是一个info类型日志")
Log.debug("我是一个debug类型日志")
Log.warn("我是一个warn类型日志")
Log.error("我是一个error类型日志")
Log.fatal("我是一个fatal类型日志")

自定义标签

使用自定义标签进行打印

TypeScript 复制代码
Log.info("我是一个info类型日志", "testTag")
Log.debug("我是一个debug类型日志", "testTag")
Log.warn("我是一个warn类型日志", "testTag")
Log.error("我是一个error类型日志", "testTag")
Log.fatal("我是一个fatal类型日志", "testTag")

json打印

json打印会进行格式化处理,直接传递json对象或者json字符串即可。

TypeScript 复制代码
Log.info({ "name": "AbnerMing", "age": 18 })

四、开源地址

gitee.com/abnercode/h...

开发环境

DevEco Studio 4.0 Beta2,Build Version: 4.0.0.400

Api版本:9

hvigorVersion:3.0.2

常见问题

如果你的开发环境比较低,会造成,下载源码,运行工程失败问题,常见错误如下,是因为开发环境不一致造成。

您可以选择解决问题,解决方式如下:

解决DevEco Studio低版本导入高版本项目运行失败问题

您也可以不运行,直接按照文档进行使用,完全没有问题。

相关推荐
是真的小外套41 分钟前
2024年软考中级信息安全工程师|选择题考点+案例分析真题解析(含答案)
android·网络
用户2018792831673 小时前
一文讲透 Android Native Heap 监控原理:一间"只进不出"的仓库,和总部派来的侦探
android
开心猴爷3 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
iOS开发上架哦3 小时前
iOS应用耗电测试:使用Energy Log、Keymob和Instruments进行性能监控与能源消耗分析
后端·ios
YB13754 小时前
Jetpack Compose 动画animate*AsState
android
高晶4 小时前
Android 通讯录应用开发实战:从零搭建 SQLite 数据持久化完整项目
android·设计模式·前端框架
隐擎fox4 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip
_瑞5 小时前
APM_KSCrash 原理
ios
用户29469405448166 小时前
DSH Desktop - Electron on HarmonyOS Edition
harmonyos·deepseek