#夏日挑战赛#OpenHarmony——hilog命令行使用手册 原创 精华
本文正在参加星光计划3.0–夏日挑战赛
作者:陈会
为了让刚入门的鸿蒙开发者迅速掌握hilog工具的使用方法,特编写了该篇命令行使用手册供开发者查阅,让开发者在自己的的开发和调试的过程中充分认识hilog工具的优势和便捷。
一、查询日志
1.1、指定模块查询
-t
用于指定输出日志的类型/模块,目前系统共包含app/core/kmsg/init四种日志类型。
hilog -t app|core|kmsg|init
阻塞式实时查询模块日志,-t
可以与其他参数一起使用。
hilog -t app|core|kmsg|init -x
非阻塞式实时查询模块日志,-x
选项也可以和hilog的其他选项同时使用。
示例如下:
1.2、指定tag查询
-T
选项为指定tag。标签:用于指定日志标识,可以为任意字符串,建议标识调用所在的类或者业务行为。
hilog -t app|core|kmsg|init -T <tag>
模块内指定tag, -T
可以与其他参数一起使用。
hilog -T <tag>
只指定tag
示例如下:
1.3、指定level查询
-L
指定日志级别,HiLog中定义了DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。
hilog -t app|core|kmsg|init -L D|I|W|E|F
模块内指定level查询,D:debug, I:info, W:warning, E:error, F:fatal。
hilog -L D|I|W|E|F
只指定level查询,可以与其他参数一起使用
示例如下:
1.4、指定domain查询
-D
选项为指定domain。服务域:日志的服务域,用于指定输出日志所对应的业务领域。这是一个十六进制整数,范围从 0x0 到 0xFFFFF。建议使用0xAAABB格式,其中AAA表示子系统,BB表示模块。
hilog -t app|core|kmsg|init -D <domian>
模块内指定domian查询。
hilog -D <domain>
只指定domian查询,可以与其他参数一起使用。
1.5、排除查询
type、level、domain、tag支持排除查询,排除查询可以使用以"^“开头的参数和分隔符”,"来完成
hilog [-t ^app|kmsg|init|core] [-T ^<tag>] [-L ^D|I|W|E|F] [-D ^<domain>]
示例如下:
二、查询和设置信息
2.1、查询和设置模块的buffer
2.1.1、查询模块的buffer
显示的日志内容为各模块buffer里当前缓存的内容,并实时更新,超出buffer的内容会覆盖掉旧的内容。
hilog -g -t app|core|kmsg|init
查询日志类型为app/core/kmsg/init的buffer大小:
示例如下:
2.1.2、设置模块的buffer
hilog -G <size> -t app|core|kmsg|init
设置指定<type>日志类型缓冲区的大小,配合-t指定某一类型使用,默认app和core, 可使用B/K/M/G为单位
示例如下:
2.1.3、清除buffer日志
hilog -t app|core|kmsg|init -r
-r
选项清除buffer日志,配合-t指定某一类型使用,默认app和core
2.2、查询和清除统计信息
2.2.1、查询统计信息
hilog -t app|core|kmsg|init -s
-s
查询统计信息,需配合-t或-D使用
示例如下:
2.2.2、清除统计信息
hilog -t app|core|kmsg|init -S
-S
清除统计信息,需配合-t或-D使用
三、日志落盘
3.1 使用方法
hilog -w start [-f "xxx"] [-l <length>] [-j <jobid>] [-m <algorithm>] [-n <number>]
启动落盘任务
hilog -w query [-j <jobid>]
查询落盘任务
hilog -w stop [-j <jobid>]
停止落盘任务
示例如下:
3.2 案例展示
案例需求:抓取模块最早的log,即:开机启动过程中模块产生的log,并将内容保存到文件导出设备
第一步:启动落盘任务
示例如下:
第二步:重启设备
第三步:设备起来后,停止落盘任务。
第四步:将log文件导出设备,即可得到模块的启动log文件。
四、其他辅助命令
-a <n>
只显示前<n>行日志
-z <n> 只显示后<n>行日志
示例如下;
这里只演示了常用的命令选项,如果需要其他选项请自行查阅附件表格,或通过hilog -h查询。
附:hilog命令行使用表格
短选项 | 长选项 | 参数 | 说明 |
---|---|---|---|
-h | –help | 帮助命令 | |
缺省 | 缺省 | 阻塞读日志,不退出 | |
-x | –exit | 非阻塞读日志,读完退出 | |
-g | 查询buffer的大小,配合-t指定某一类型使用,默认app和core | ||
-G | –buffer-size | <size> | 设置指定<type>日志类型缓冲区的大小,配合-t指定某一类型使用,默认app和core, 可使用B/K/M/G为单位 |
-r | 清除buffer日志,配合-t指定某一类型使用,默认app和core | ||
-p | –privacy | <on/off> | 支持系统调试时日志隐私开关控制 |
on | 打开隐私开关,显示<private> | ||
off | 关闭隐私开关,显示明文 | ||
-k | <on/off> | Kernel日志读取开关控制 | |
on | 打开读取kernel日志 | ||
off | 关闭读取kernel日志 | ||
-s | –statistics | 查询统计信息,需配合-t或-D使用 | |
-S | 清除统计信息,需配合-t或-D使用 | ||
-Q | <control-type> | 流控缺省配额开关控制 | |
pidon | 进程流控开关打开 | ||
pidoff | 进程流控开关关闭 | ||
domainon | domain流控开关打开 | ||
domainoff | domain流控开关关闭 | ||
-L | –level | <level> | 指定级别的日志,示例:-L D/I/W/E/F |
-t | –type | <type> | 指定类型的日志,示例:-t app core init |
-D | –domain | <domain> | 指定domain |
-T | –Tag | <tag> | 指定tag |
-a | –head | <n> | 只显示前<n>行日志 |
-z | –tail | <n> | 只显示后<n>行日志 |
-P | –pid | <pid> | 标识不同的pid |
-e | –regex | <expr> | 只打印日志消息与<expr>匹配的行,其中<expr>是一个正则表达式 |
-f | –filename | <filename> | 设置落盘的文件名 |
-l | –length | <length> | 设置落盘的文件大小,需要大于等于64K |
-n | –number | <number> | 设置落盘文件的个数 |
-j | –jobid | <jobid> | 设置落盘任务的ID |
-w | –write | <control> | 落盘任务控制 |
query | 落盘任务查询 | ||
start | 落盘任务开始,命令行参数为文件名、单文件大小、落盘算法、rotate文件数目. | ||
stop | 落盘任务停止 | ||
-m | –stream | <algorithm> | 落盘方式控制 |
none | 无压缩方式落盘 | ||
zlib | zlib压缩算法落盘,落盘文件为.gz | ||
zstd | zstd压缩算法落盘,落盘文件为.zst | ||
-v | –format | <format> | |
time | 显示本地时间 | ||
color | 显示不同级别显示不同颜色,参数缺省级别颜色模式处理(按黑白方式) | ||
epoch | 显示相对1970时间 | ||
monotonic | 显示相对启动时间 | ||
usec | 显示微秒精度时间 | ||
nsec | 显示纳秒精度时间 | ||
year | 显示将年份添加到显示的时间 | ||
zone | 显示将本地时区添加到显示的时间 | ||
-b | –baselevel | <loglevel> | 设置可打印日志的最低等级:D(DEBUG)/I(INFO)/W(WARN)/E(ERROR)/F(FATAL) |
更多原创内容请关注:深开鸿技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
感谢楼主整理分享。
希望对大家有帮助