日志打印,没什么好说的,系统已给我们提供,且调用也是非常的简单,我们封装的目的,一是扩展,打印一些不常见的类型,比如格式化json,使得日志看起来比较好看,二是,控制日志的开关,使其动态开启打印和关闭打印,三是,简化代码,使其调用起来更加的方便。
如下图所示,便是我们封装之后的打印效果。
本章的内容大致如下,关于源码解析,我们放到下篇文章概述。
1、Log工具快速使用
2、全局初始化
3、基本打印
4、开源地址
目前Log工具类已经开源,在源码中的README中已经做了很详细的介绍,当然了,你也可以按照如下的方式进行快速使用。
私服和远程依赖,由于权限和审核问题,预计需要等到2024年第一季度面向所有开发者,所以,只能暂时使用本地静态共享包和源码两种使用方式,本地静态共享包类似Android中的aar依赖,直接复制到项目中即可。
首先,下载har包,点击下载
下载之后,把har包复制项目中,目录自己创建,如下,我创建了一个libs目录,复制进去。
引入之后,进行同步项目,点击Sync Now即可,当然了你也可以,将鼠标放置在报错处会出现提示,在提示框中点击Run 'ohpm install'。
需要注意,@app/log,是用来区分目录的,可以自己定义,比如@aa/bb等,关于静态共享包的创建和使用,请查看如下我的介绍,这里就不过多介绍。
下载源码后,直接把源码中log这个module复制到项目中,直接引用即可:
如果您的DevEco Studio低于4.0,您需要更改log模块里的hvigorfile.ts文件。
修改前
- 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. */
- }
修改后
export { harTasks } from '@ohos/hvigor-ohos-plugin';
并需要进行模块的引入,在跟项目中build-profile.json5文件里添加如下:
- {
- "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"
- }
- ]
- }
无论使用哪种方式进行依赖,最终都会在使用的模块中,生成一个oh_modules文件,并创建源代码文件,有则成功,无则失败,如下:
初始化仅需要初始化一次即可,可以在AbilityStage进行,目前初始化中均有默认值,如果您使用默认值,就无需进行初始化。初始化采用的是对象参数传递形式,其参数您可以按实际需要进行传递,如果想和默认值保持一致,有些参数就可以省略。
- 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字节 |
使用统一标签进行打印,直接传递打印内容即可。
- Log.info("我是一个info类型日志")
- Log.debug("我是一个debug类型日志")
- Log.warn("我是一个warn类型日志")
- Log.error("我是一个error类型日志")
- Log.fatal("我是一个fatal类型日志")
使用自定义标签进行打印
- Log.info("我是一个info类型日志", "testTag")
- Log.debug("我是一个debug类型日志", "testTag")
- Log.warn("我是一个warn类型日志", "testTag")
- Log.error("我是一个error类型日志", "testTag")
- Log.fatal("我是一个fatal类型日志", "testTag")
json打印会进行格式化处理,直接传递json对象或者json字符串即可。
Log.info({ "name": "AbnerMing", "age": 18 })
https://gitee.com/abnercode/harmony-os-log
DevEco Studio 4.0 Beta2,Build Version: 4.0.0.400
Api版本:9
hvigorVersion:3.0.2
如果你的开发环境比较低,会造成,下载源码,运行工程失败问题,常见错误如下,是因为开发环境不一致造成。
您可以选择解决问题,解决方式如下:
解决DevEco Studio低版本导入高版本项目运行失败问题
您也可以不运行,直接按照文档进行使用,完全没有问题。