鸿蒙开发:log组件升级,应用内可查看

前言

log组件,在23年就开源了,重点解决了控制台格式化和日志位置问题,可以说后续的大部分的日志组件,都参考了我的方案,目前,可能很多同学还在使用。

如今,我对log组件做了全新升级,在支持控制台打印的同时,增加了App应用内查看的功能,在测试验证的时候,可以直观的查看日志的输出,而不用在盯着控制台。

效果查看

启动悬浮窗之后,触发就可以弹出日志窗口,页面简洁直观,区分了日志等级。

如果默认的黑色样式不喜欢,也可以选择一个自己喜欢的背景。

切换全模态后,高度会增加,方便查看全部日志信息。

同样的,除了应用端日志查看,在控制台中同样支持格式化日志查看,支持任意类型数据打印,并支持大数据打印和位置信息定位:

快速使用

目前全新的版本,已经上传到了中心仓库,地址如下:

https://ohpm.openharmony.cn/#/cn/detail/@abner%2Fapp_log

方式一:在Terminal窗口中,执行如下命令安装三方包,DevEco Studio会自动在工程的oh-package.json5中自动添加三方包依赖。

建议:在使用的模块路径下进行执行命令。

Groovy 复制代码
ohpm install @abner/app_log

方式二:在需要的模块中的oh-package.json5中设置三方包依赖,配置示例如下:

Groovy 复制代码
"dependencies": { "@abner/app_log": "^1.0.0"}

代码使用

初始化

可在AbilityStage或者主入口时进行初始化,主要配置全局参数,初始化不是必须的!有需要可设置,不需要可不设置!

TypeScript 复制代码
AppLog.getAppLog().init({

})

属性配置

|-----------------|---------------|--------------------------------------------|
| 属性 | 类型 | 概述 |
| logOutputType | LogOutputType | 日志输出类型,默认LogOutputType.DEFAULT,控制台和应用内同时输出 |
| globalTag | string | 全局Tag,默认为HarmonyOSLog |
| isHiLog | boolean | 控制台输出类型,默认true,为hiLog形式,fasle为console |
| closeLog | boolean | 日志输出开关,默认false为打开,可根据测试或正式进行动态设置 |
| showLogLocation | boolean | 控制台日志输出是否需要位置,默认true为需要 |

应用内开启悬浮日志入口

可单页面设置,也可全局设置。

TypeScript 复制代码
AppLog.getAppLog().showLog(() => {
  //这里可配置页面返回,可以在关闭日志的同时,返回页面,根据自己需要进行配置。比如,我使用的是router
  this.getUIContext().getRouter().back()
})

应用内关闭悬浮日志入口

TypeScript 复制代码
AppLog.getAppLog().hideLog()

日志打印

支持数字,字符串,数组,对象,json等等类型数据打印,并且支持格式化形式输出。

打印普通的一条日志

TypeScript 复制代码
AppLog.log("我是一条普通的字符串")

各个类型输出

TypeScript 复制代码
AppLog.debug("我是debug信息")
AppLog.info("我是info信息")
AppLog.warn("我是warn信息")
AppLog.error("我是error信息")
AppLog.fatal("我是fatal信息")

各个数据输出

TypeScript 复制代码
//数字
AppLog.debug(888990008888, "testTag")
//数组  
AppLog.error(["条目一", "条目二", "条目三", "条目四"], "tag_001")
//对象  
let bean = new TestBean()
bean.name = "我是测试对象"
bean.age = 18
AppLog.error(bean)
//json串
let json = "{\"name\":\"程序员一鸣\",\"age\":18}"
AppLog.warn(json)

单独设置tag

TypeScript 复制代码
AppLog.debug("我是单独设置的tag", "testTag")

相关总结

应用端日志查看,满足了非IDE连接时,想要跟踪日志的需求,除此之外,它纯日志输出,无任何其他的内容干扰,可以辅助开发人员,快速的定位问题,可以说,还是十分的便利的;当然了,如果不想使用应用端日志输出,也可以单独使用控制台日志输出。