【鸿蒙开发】KaiHong鸿蒙HiLog命令行使用教程

00. 目录

01. 概述

HiLog是OpenHarmony日志系统,提供给系统框架、服务、以及应用打印日志,记录用户操作、系统运行状态等。

本章节内容对标准系统类设备(参考内存≥128MiB)适用。

HiLog 架构
在这里插入图片描述

  • hilogd

hilogd是流水日志的用户态服务。此功能是常驻服务,在系统启动时默认启动。当用户态模块调用日志接口时,hilogd将格式化好的日志内容传输给该任务,并将其存储在一个环形缓冲区中。

  • hilog

hilog是日志查看命令行工具。hilog工具支持将日志输出到控制台(console)进行查看,同时也支持给hilogd发送命令将日志落盘。

02. 命令行说明

前置条件

  • 根据hdc命令行工具指导,完成环境准备
  • 正常连接设备。

hilog命令行使用方式:

短选项长选项参数说明
-h–help帮助命令。
缺省缺省阻塞读日志,不退出。
-x–exit非阻塞读日志,读完退出。
-g查询buffer的大小,配合-t指定某一类型使用,默认app和core。
-G–buffer-size设置指定日志类型缓冲区的大小,配合-t指定某一类型使用,默认app和core, 可使用B/K/M/G为单位。
-r清除buffer日志,配合-t指定某一类型使用,默认app和core。
-p–privacy<on/off>支持系统调试时日志隐私开关控制。
on打开隐私开关,显示。
off关闭隐私开关,显示明文。
-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。
-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落盘任务停止。
-m–stream落盘方式控制。
none无压缩方式落盘。
zlibzlib压缩算法落盘,落盘文件为.gz。
zstdzstd压缩算法落盘,落盘文件为.zst。
-v–format
time显示本地时间。
color显示不同级别显示不同颜色,参数缺省级别颜色模式处理(按黑白方式)。
epoch显示相对1970时间。
monotonic显示相对启动时间。
usec显示微秒精度时间。
nsec显示纳秒精度时间。
year显示将年份添加到显示的时间。
zone显示将本地时区添加到显示的时间。
-b–baselevel设置可打印日志的最低等级:D(DEBUG)/I(INFO)/W(WARN)/E(ERROR)/F(FATAL)。

查询相关命令

短选项长选项说明
-h–help打印hilog的命令帮助信息。

时间相关命令

短选项长选项参数说明
-v–format时间显示格式。

参数:

参数名说明
time显示本地时间。
color显示不同级别显示不同颜色,参数缺省级别颜色模式处理(按黑白方式)。
epoch显示相对1970时间。
monotonic显示相对启动时间。
usec显示微秒精度时间。
nsec显示纳秒精度时间。
year显示将年份添加到显示的时间。
zone显示将本地时区添加到显示的时间。

03. 日志查询

命令说明

日志查询命令

命令功能说明
hilog -t <app|core|kmsg|init>查询指定类型的日志。l app:应用日志l core:基础框架日志l kmsg:内核日志l init:系统初始化日志
hilog –L <D/I/W/E/F(DEBUG/INFO/WARN/ERROR/FATAL)>查询指定级别的日志。日志级别的说明,参见“日志级别”。
hilog –D <0xD0xxxyy/0xD0xxx>查询指定业务领域的日志,多个参数用逗号隔开。
hilog –T查询指定tag的日志,多个参数用逗号隔开。
hilog –P查询指定进程ID的日志,多个参数用逗号隔开。
hilog –e查询符合指定正则表达式的日志。
hilog –v查询日志并指定显示格式。包含以下格式选项:l [color|colour]:按日志级别显示不同颜色的日志l [time]:显示本地时间l [epoch]:显示相对1970年1月1日的时间l [monotonic]:显示相对系统启动的时间l [usec]:表示微秒l [nsec]:表示纳秒l [year]:表示显示年份l [zone]:表示显示时区不同选项可以联合使用,例如:hilog -v color -v time -v nsec -v year -v zone说明:以上选项中,[time]、[epoch]和[monotonic]三选一,[usec]和[nsec]二选一。

示例:

# hilog -v color -v time -v nsec -v year -v zone

04. 日志缓存

命令说明

日志缓存命令

命令功能说明
hilog –g [–t app|core|init|kmsg]查询缓存大小。可以配合-t使用,查询指定类型的日志缓存大小。不带-t,则默认为查询app和core两种类型的日志缓存大小。
hilog –G xxx [–t app|core|init|kmsg]设置缓存大小。可使用B/K/M/G为单位,设置范围为[64K, 512M]。可以配合-t使用,设置指定类型的日志缓存大小。不带-t,则默认为设置app和core类型的日志缓存大小。
hilog –r [–t app|core|init|kmsg]清除缓存日志。可以配合-t使用,清除指定类型的缓存日志。不带-t,则默认为清除app和core类型的日志缓存。

示例:

# hilog -g -t core

core buffer size is 256K

# hilog -G 5M -t core

core buffer size is 5M

# hilog -g -t core

core buffer size is 5M

05. 日志落盘

命令说明

日志落盘命令

命令功能说明
hilog –w start启动落盘。此命令后面可以携带以下选项:l [-f “xxx”]:重命名落盘文件,文件名不能重复。不带此选项,则默认落盘文件名为“hilog”或“hilog_kmsg”。(app、core和init类型的日志文件名为“hilog”,kmsg类型的日志文件名为“hilog_kmsg”。)l [-l xxx]:指定单个落盘文件的长度,可使用K/M/G为单位,取值范围为[64K, 512M]。不带此选项,则单个落盘文件的长度默认为4M。l [-n xxx]:指定一次落盘的日志文件个数。文件个数的取值范围为[2, 1000]。不带此选项,则默认文件个数为10。l [-m none/zlib/zstd]:指定压缩算法。不带此选项,则默认采用zlib压缩。l [-j xxx]:指定落盘任务的ID。ID的取值范围为[10, 0x7FFFFFFF),不能重复。不带此选项,则默认app、core和init日志落盘任务ID为1,kmsg日志落盘任务ID为2。l [-t xxx]:指定落盘的日志类型。不带此选项,则默认为app和core类型。此命令还可以配合选项-L/-D/-T/-P/-e/-v使用,使用方法参见表2-1。说明:kmsg类型是独立的,不能和app、core、init同时落盘。落盘路径为/data/log/hilog。
hilog –w query查询落盘。此命令后面可以携带以下选项:l [-j xxx]:指定查询的落盘任务ID。l [-t xxx]:指定查询的落盘日志类型。(查询kmsg类型日志的落盘,只能通过该方式。)不带以上选项,则默认查询app和core类型日志的落盘。
hilog –w stop停止落盘。此命令后面可以携带以下选项:l [-j xxx]:指定要停止落盘的任务ID。不带此选项,则默认停止所有落盘任务。

示例:

# hilog -w start -j 10 -f mylog -l 10M -n 100 -t core //开启core类型日志的落盘

Persist task [jobid:10] started successfully

# hilog -w query

10 core zlib /data/log/hilog/mylog 10.0M 100

# cd /data/log/hilog/

# ls

mylog.000.19700101-000640.gz

#hilog -w start -j 10 -f mklog -l 10M -n 100 -t kmsg -m none //开启kmsg类型日志的落盘

Persist task [jobid:11] started successfully

# hilog -w query -t kmsg

11 kmsg none /data/log/hilog/mklog 10.0M 100

# ls

mklog.000.19700101-000752 mylog.000.19700101-000640.gz

06. 日志流控

6.1 日志流控总开关

命令说明

日志流控总开关

命令功能说明
hilog -Q打开或关闭日志流量控制功能,包含进程流控和域流控。l <pidon/pidoff>:进程流控打开或关闭,重启失效。为了不影响开机日志,默认在系统启动五分钟后打开进程流控。l <domainon/domainoff>:域流控打开或关闭,重启失效。默认关闭域流控。打开流控后,默认额度为10KB/s。

示例

# hilog -Q pidon

Set flow control by process to enabled, result: Success [CODE: 0]

# hilog -T LOGLIMIT

01-01 00:58:32.058 451 451 W 02500/LOGLIMIT: ==LOGS OVER PROC QUOTA, 92 DROPPED==

01-01 00:58:37.060 451 451 W 02500/LOGLIMIT: ==LOGS OVER PROC QUOTA, 2 DROPPED==

01-01 00:58:42.058 451 451 W 02500/LOGLIMIT: ==LOGS OVER PROC QUOTA, 92 DROPPED==

……

# hilog -Q pidoff

Set flow control by process to disabled, result: Success [CODE: 0]

6.2 某一进程流控开关

当进程流控总开关打开时,默认所有的进程流控都打开。可以通过手动执行命令打开或关闭某一进程流控。

命令说明

某一进程流控开关

命令功能说明
param set hilog.quota.proc.close.进程名 true说明:可以通过ps -ef命令查看进程名。关闭某一进程流控,重启失效。
param set hilog.quota.proc.close.进程名 false打开某一进程流控,重启失效。

命令示例

通过ps -ef命令查看进程名。
在这里插入图片描述

执行以下命令关闭khmonitorservic进程流控。

param set hilog.quota.proc.close.khmonitorservic true

6.3 设置某一进程流控配额

打开进程流控总开关后,默认限额为10KB/s。HiLog限流机制以每秒为周期做一次限流,可以通过手动执行命令调整某一进程的流控配额。

命令说明

设置某一进程流控配额

命令功能说明
param set hilog.quota.proc.进程名 配额说明:可以通过ps -ef命令查看进程名。为某一进程设置流控配额,重启失效。配额的单位为字节。

示例

设置khmonitorservic进程流控配额为20KB,命令如下:

param set hilog.quota.proc.khmonitorservic 20480

6.4 查看日志限流

打开日志流控后,可以通过命令查看日志限流情况。

命令说明

查看日志限流

命令功能说明
hilog | grep “LOGS OVER PROC QUOTA”查看日志限流情况。

命令示例

比如播放一段视频时,查看到日志限流情况如下:
在这里插入图片描述

07. 日志隐私格式化

日志隐私格式化命令

命令功能说明
hilog –p <on/off>打开或关闭日志隐私格式化开关。此开关默认是开启的。关闭日志隐私格式化开关是一个临时配置,重启失效。

命令示例

# hilog -p off

hilog private formatter is disabled

# hilog -p on

hilog private formatter is enabled

打开日志隐私格式化开关后,日志中的隐私信息会被替换为,如图所示。
在这里插入图片描述

08. 设置日志打印级别

命令说明

日志打印级别命令

命令功能说明
hilog -b设置可打印日志的最低级别。表示日志级别,支持长字符串或短字符串,取值如下:<DEBUG/INFO/WARN/ERROR/FATAL>|<D/I/W/E/F>日志级别的说明,参见“3.1 日志级别”。此设置为临时配置,重启失效。默认可打印日志的最低级别为DEBUG。

示例

# hilog -b E

global log level is set to E

09. 日志统计

命令说明

日志统计命令

命令功能说明
hilog –s查询统计信息,需配合–t或–D使用。执行此命令前,需要打开如下开关:param set persist.sys.hilog.stats trueparam set persist.sys.hilog.stats.tag true
hilog –S清除统计信息,需配合–t或–D使用。

示例

# param set persist.sys.hilog.stats true

Set parameter persist.sys.hilog.stats true success

# param set persist.sys.hilog.stats.tag true

Set parameter persist.sys.hilog.stats.tag true success

# hilog -s -t app

app print log length is 367K

app cache log length is 54K

app dropped log lines is 0B

# hilog -S -t app

app statistic info clear success

10. 日志级别

日志级别

日志级别由低到高依次为:DEBUG、INFO、WARN、ERROR和FATAL,具体说明如表3-1所示。

日志级别

级别说明
DEBUG详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。
INFO用于记录业务关键流程节点,可以还原业务的主要运行过程;用于记录可预料的非正常情况信息,如无网络信号、登录失败等。这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。
WARN用于记录较为严重的非预期情况,但是对用户影响不大,应用可以自动恢复或通过简单的操作就可以恢复的问题。
ERROR应用发生了错误,该错误会影响功能的正常运行或用户的正常使用,可以恢复但恢复代价较高,如重置数据等。
FATAL重大致命异常,表明应用即将崩溃,故障无法恢复。

11. 附录

hilog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧海一笑-dj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值