篮之新喜 发表于 2025-1-11 08:05:37

HarmonyOS Next 日记工具介绍

HarmonyOS Next 日记工具介绍

在HarmonyOS Next开发中,日记是我们调试定位问题的主要手段,不管是hilog还是console,最终都可以输出到DevEco Studio的日记模块中:
https://i-blog.csdnimg.cn/direct/d0485563d75c4f98a1532735fd6fef05.png
在这里可以过滤应用历程、日记级别、日记内容呢,也可以便捷的搜刮。但是在一些场景,日记较多,刷新较快时,我们希望日记可以输出到文件,在Android中提供了logcat命令工具帮助我们将日记输出到控制台或者文件,HarmonyOS Next也提供了类似的工具hilog。
hilog工具介绍

HiLog日记系统,提供给系统框架、服务、以及应用,用于打印日记,记录用户操纵、系统运行状态等。开发者可以通过hilog命令行查询相关日记信息。
当我们安装DevEco Studio IDE或者安装HarmonyOS SDK后,将hdc命令工具配置到情况变量后就可以直接利用hdc命令进入手机的shell中:
hdc shell
https://i-blog.csdnimg.cn/direct/1474bbb40f004c4189a9316b1d08af40.png
进入shell后就可以开始执行hilog命令了:
https://i-blog.csdnimg.cn/direct/aa2490f4dbdd40ce978de354da937e22.png
我们发现日记刷的特别快,还不如DevEco Studio中的日记工具,怎么办?给hilog加参数。
hilog命令参数说明:
短选项长选项参数说明-h–help帮助命令。缺省缺省阻塞读日记,不退出。-x–exit非阻塞读日记,读完退出。-g查询buffer的大小,配合-t指定某一类型利用,默认app和core。-G–buffer-size设置指定日记类型缓冲区的大小,配合-t指定某一类型利用,默认app和core, 可利用B/K/M为单位,范围为64K-16M。-r清除buffer日记,配合-t指定某一类型利用,默认app和core。-k<on/off>Kernel日记读取开关控制。on打开读取kernel日记。off关闭读取kernel日记。-s–statistics查询统计信息,需配合-t或-D利用。-S清除统计信息,需配合-t或-D利用。-Q流控缺省配额开关控制。pidon历程流控开关打开。pidoff历程流控开关关闭。domainondomain流控开关打开。domainoffdomain流控开关关闭。-L–level指定级别的日记,示例:-L D/I/W/E/F。-t–type指定类型的日记,示例:-t app/core/init/only_prerelease。app为应用日记,core为系统日记,init为启动日记,only_prerelease为仅在系统release版本前打印的日记,应用开发者无需关注。-D–domain指定domain。-T–tag指定tag。-a–head只体现前行日记。-z–tail只体现后行日记。-P–pid标识不同的pid。-e–regex只打印日记消息与匹配的行,其中是一个正则表达式。-f–filename设置落盘的文件名。-l–length设置落盘的文件大小,必要大于等于64K。-n–number设置落盘文件的个数。-j–jobid设置落盘使命的ID。-w–write落盘使命控制。query落盘使命查询。start落盘使命开始,命令行参数为文件名、单文件大小、落盘算法、rotate文件数量。stop落盘使命停止。refresh刷新缓冲区的日记到落盘文件。clear删除已经落盘的日记文件。-m–stream落盘方式控制。none无压缩方式落盘。zlibzlib压缩算法落盘,落盘文件为.gz。zstdzstd压缩算法落盘,落盘文件为.zst。-v–formattime体现当地时间。color体现不同级别体现不同颜色,参数缺省级别颜色模式处置惩罚(按好坏方式)。epoch体现相对1970时间。monotonic体现相对启动时间。usec体现微秒精度时间。nsec体现纳秒精度时间。year体现将年份添加到体现的时间。zone体现将当地时区添加到体现的时间。wrap日记换行体现时,新行不增加时间戳等前缀。-b–baselevel设置可打印日记的最低等级:D(DEBUG)/I(INFO)/W(WARN)/E(ERROR)/F(FATAL)。 参数配置实践

清除缓冲区日记

一般日记都有缓存区,我们在开始启动应用预备观察日记时为了屏蔽之前的日记缓存干扰,可以执行清除缓存命令:
$ hilog -r
Log type core,app,only_prerelease buffer clear successfully
内核日记读取开关控制

在应用调试时一般不必要内核日记,可以通过hilog -k on/off开启或关闭内核日记:
$ hilog -k on
Set hilogd storing kmsg log on successfully
$
$ hilog -k off
Set hilogd storing kmsg log off successfully
查看指定级别日记

hilog -L D/I/W/E/F
查看指定类型日记

hilog -t app
https://i-blog.csdnimg.cn/direct/43abc1a3e7234b5b9db47ebccf863a36.png
查看指定domain日记

hilog -D 01B06
查看指定TAG日记

hilog -T tag
查看指定历程日记

hilog -P pid
https://i-blog.csdnimg.cn/direct/7836964692de450f8104e223744e8f18.png
查看符合正则匹配关键字的日记

hilog -e start
查看、设置落盘使命

hilog -w control


[*]查询当前使命: hilog -w query
[*]开启hilog落盘使命,而且设置落盘文件数量为1000个: hilog -w start -n 1000
[*]开启kmsglog落盘使命,而且设置落盘文件数量为100个: hilog -w start -n 100 -t kmsg
[*]停止当前落盘使命: hilog -w stop
[*]开启kmsglog落盘使命,而且设置落盘规则,其中压缩方式可以为zlib,zstd,none。以设置规则为例:文件名为kmsglog,大小为2M,数量为100个, 其压缩方式为zlib压缩,命令举动: hilog -w start -t kmsg -f kmsglog -l 2M -n 100 -m zlib
示例:
$ hilog -w query
Persist task query failed
No running persistent task
$
$ hilog -w start -n 1000
Persist task start successfully
$
$ hilog -w start -n 100 -t kmsg
Persist task start successfully
$
$ hilog -w stop
Persist task stop successfully
Persist task stop successfully
$
$ hilog -w start -t kmsg -f kmsglog -l 2M -n 100 -m zlib
Persist task start successfully
设置日记体现格式

hilog -v time/color/epoch/monotonic/usec/nsec/year/zone/wrap
https://i-blog.csdnimg.cn/direct/9a580491dc5d4e5bae65d72ae0fa4f01.png
https://i-blog.csdnimg.cn/direct/02dc2daf9c96463cbb81782074cf91f5.png
这个格式设置对于我们控制台查看日记还是很方便的。
设置可打印日记的最低等级

hilog -b D/I/W/E/F
有时候明显打印了日记,但是看不到,大概就是因为设置了这个。
hilogtool工具介绍

现在hilog日记为编码后二进制形式生存的gz格式文件,开发者从装备/data/log/hilog路径下导出后无法直接解压查看,必要利用hilogtool工具进行剖析,将转换为明文hilog日记。
https://i-blog.csdnimg.cn/direct/8c9756284d8f4660b1b21344849028c6.png
hilogtool工具位于SDK的hms/toolchains目录下,利用方法如下:


[*]hilogtool parse -i xxx -o xxx -d xxx
[*]hilogtool parse –-input xxx –-output xxx --dict xxx
剖析命令参数列表:
选项形貌举例-i/–-input inputDir用于指定输入路径,会扫描该目录下全部的hilog流水日记文件并进行剖析;

缺省时,为命令行当前所在路径;剖析指定目录(D:\temp\hilog)下的全部hilog文件:

hilogtool parse -i D:\temp\hilog

剖析当前目录下的全部hilog文件:

hilogtool parse -i .|-i/–-input inputFile剖析指定的单个hilog文件剖析指定的hilog文件:

hilogtool parse -i D:\temp\data\log\hilog.706.20230711-071816.gz

hilogtool parse -i .\hilog.706.20230711-071816.gz-o/–-output outputDir用于指定输出路径,即剖析后的日记文件生存路径;

缺省时,为剖析的hilog原日记文件所在路径;剖析当前目录下的日记文件到D:\temp目录:

hilogtool parse -i .\ -o D:\temp-d/–dict dictFile用于指定命据字典的路径;

缺省时,会在命令行当前所在路径下匹配最新的数据字典文件(格式:hilog_dict.20230908-142200.zip)剖析指定目录(D:\temp\hilog)下的全部hilog文件,而且指定利用该目录下的数据字典:

hilogtool parse -i D:\temp\hilog -d D:\temp\hilog\hilog_dict.20230908-142200.zip 数据字典文件在data/log/hilog目录下,格式为:hilog_dict.2024xxxx-xxxxxx.zip,是装备启动时自动生成的,在剖析日记时必要这个文件。
若缺少数据字典,会导致部分日记剖析失败;重启装备可以重新生成该数据字典。
https://i-blog.csdnimg.cn/direct/20929bc9a712403bac9fc31535049f6b.png
参考链接



[*]hilog
[*]hilogtool
总结

利用 hilog 和 hilogtool 可以帮助开发者更好地理解和调试应用步调,尤其是在遇到问题时,它们提供了一个查看已往事件和错误的方式。然而,由于这些工具和系统是特定于 Huawei 的 HarmonyOS 平台,因此大概不适用于其他操纵系统或平台。
假如你正在利用 HarmonyOS 开发应用步调,而且必要记录和分析日记信息,相识 hilog 和 hilogtool 将非常有帮助。假如你在其他平台上工作,你大概必要探求类似的工具和方法来管理你的日记。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: HarmonyOS Next 日记工具介绍