鸿蒙中的Logger
Logger
灵感泉源 - Android logger
HarmonyOS使用的日志 库,具备轻量、雅观强盛、可扩展的特性,日志 写入文件。使用API 12,点击可以跳转到源文件
上图
打印Error大概BusinessError
写入文件
由于按行写的一条日志 ,内里大概有换行符,以是把换行符都更换成‘-----’这个了
快速开始
安装
导入
- import { Logger } from '@nzy/logger';
复制代码 打印日志
- Logger.debug('hello world')
- Logger.info(new Person())
- Logger.warn(new Person())
- Logger.error('这是一个error')
- Logger.fatal('这是一个fatal')
- Logger.json(new Person())
复制代码 全局初始化
如果必要写入文件功能,请尽早初始化
- // 也可以不用初始化
- Logger.init();
- // 或者传递过去,如果要是写入文件 jsonWrite = true ,必须传递parentPath,必须传递 FileStrategy
- Logger.init({
- domain: 0x0000, // domain
- isEnable: true, // 是否打印,默认是 true,是否打印,不影响写文件
- isShowFile: true, // 是否显示打印日志文件的位置 默认 true
- tag: 'MyTag', // 全局TAG 默认是 Logger
- jsonWrite: true, // 是否写入文件 默认是 true
- debugLevelWrite: true, // debug级别的是否写入文件 默认是 true
- parentPath: parentPath // 写入文件的 parent 路径
- },
- new FileStrategy(`${Date.now()}.txt`)// 要写入文件策略模式,自己也可以去实现
- )
复制代码 LogOptions
属性默认值形貌domain0x0000Hilog的domainisEnabletrue是否打印,不影响写文件isShowFiletrue是否表现打印的文件以及行号tagLogger全局TAGjsonWritetrue是否写入文件,必须转达FileStrategy才华真正写入parentPath无写入文件的 parent 路径,方便当有多个日志文件的时间,全部捞出来,如果要写入 必须传设置新的FileStrategy
当设置新的FileStrategy的时间,日志会写入新的文件,而且返回旧文件的全路径,可以拿这个旧文件上传到服务器,上传乐成请删除旧文件
- let oldFilePath = Logger.setNewFile(new FileStrategy(`${Date.now()}.txt`))
- // 可以把这个上传到服务器
- if (oldFilePath && fs.accessSync(oldFilePath)) {
- // 存在 上传给服务器
- // 删除此文件
- // fs.unlinkSync(oldFilePath)
- console.log('上传服务器,并且删除此文件')
- }
复制代码 拿到全部的日志文件
在全局初始化的时间,有个parentPath,当冷启动的时间,可以拿到全部这个文件夹下的全部日志,上传给服务器,而且删除
- let parentPath = getContext(this).getApplicationContext().filesDir
- // 当启动起来的时候
- // 去拿parentPath下面所有的文件,然后上传上去
- // 这里面有可能是多个文件
- let files: string[] = fs.listFileSync(parentPath)
复制代码 注意点
跳转到源文件
由于 DevEco Studio 只能在error和warn的情况下才华跳转源文件,以是必要 DevEco Studio
安装一个插件 awesome-console,而且在 DevEco Studio 中
Marketplace 搜不到,以是必要从 awesome-console 手动安装
打印丢失
如果打印过大的Json,在模拟器上有大概丢失,在真机上不会丢失(但是好比循环10000次打印 ,在真机上也会丢失),HiLog和console属于DevEco
Studio 的bug
好比 如许就 在模拟器中就会丢失,在真机就不会丢失,如果index < 10000 ,真机也会丢失
- for(let index = 0; index<1000;index++){
- console.log(`----${index}-----`)
- }
复制代码 贡献代码
使用过程中发现任何题目都可以提 Issue。
给我们,固然,我们也非常接待你给我们发 PR 。
开源协议
本项目基于 Apache License 2.0 ,请自由地享受和加入开源。
源码Gitee
OpenHarmony三方库中央仓
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |