1# hisysevent
2
3hisysevent是系统的预置工具,主要用来帮助开发者订阅实时系统事件,查询历史系统事件。开发者使用[hdc工具](hdc.md)进入设备之后,在终端使用执行"hisysevent"命令完成相关能力的调用。
4
5## 订阅实时系统事件
6
7- 使用"hisysevent -r"命令完成对系统事件的订阅。
8
9   ![](figures/hisysevent-r.png)
10
11- 使用"-g"指定事件类型来完成对系统事件更高精确度的订阅。
12
13  > **说明:**
14  > 订阅实时系统事件时,使用"-g"可以指定**FAULT**(错误类型)、**STATISTIC**(统计类型)、**SECURITY**(安全类型)以及**BEHAVIOR**(用户行为类型)四种事件类型。
15  >
16  > 如果开发者没有使用"-g"指定事件类型,hisysevent命令行工具将订阅所有类型的系统事件。
17
18  样例:订阅**FAULT**(错误)类型的系统事件。
19
20  ![](figures/hisysevent-r-g.png)
21
22- 使用"-o"指定事件域,"-n"指定事件名,以及"-c"指定事件域和事件名称的匹配规则,完成系统事件更高精确度的订阅。
23
24  > **说明:**
25  > 订阅实时系统事件时,使用"-c"可以指定**WHOLE_WORD**(全词匹配)、**PREFIX**(前缀匹配)以及**REGULAR**(正则匹配)三种匹配规则。
26  >
27  > 如果开发者没有使用"-c"指定匹配规则,hisysevent命令行工具将默认使用**WHOLE_WORD**匹配规则进行订阅匹配。
28
29  样例1:使用全词匹配规则,订阅事件域为"AAFWK",事件名称为"CONNECT_SERVICE"的系统事件。
30
31  ![](figures/hisysevent-r-o-wholeword.png)
32
33  样例2:使用前缀匹配规则,订阅事件域前缀为"AAF",事件名称前缀为"CONNECT"的系统事件。
34
35  ![](figures/hisysevent-r-o-prefix.png)
36
37  样例3:使用正则表达式匹配规则,订阅事件域可以匹配"AA\*"正则表达式,事件名称可以匹配"CONNE\*"正则表达式的系统事件。
38
39  ![](figures/hisysevent-r-o-regular.png)
40
41- 使用"-t"指定事件标签以及"-c"指定事件标签的匹配规则,来完成系统事件更高精确度的订阅。
42
43  样例1:使用全词匹配规则,订阅事件标签为"ability"的系统事件。
44
45  ![](figures/hisysevent-r-t-wholeword.png)
46
47  样例2:使用前缀匹配规则,订阅事件标签前缀为"abili"的系统事件。
48
49  ![](figures/hisysevent-r-t-prefix.png)
50
51  样例3:使用正则表达式匹配规则,订阅事件标签可以匹配"abi\*"正则表达式的系统事件。
52
53  ![](figures/hisysevent-r-t-regular.png)
54
55## 查询历史事件
56
57- 使用"hisysevent -l"命令完成对已落盘的系统事件的查询。
58
59  ![](figures/hisysevent-l.png)
60
61- 可以使用"-g"指定事件类型来完成对系统事件更高精确度的查询。
62
63  > **说明:**
64  > 查询历史事件时,使用"-g"可以指定**FAULT**(错误类型)、**STATISTIC**(统计类型)、**SECURITY**(安全类型)以及**BEHAVIOR**(用户行为类型)四种事件类型。
65  >
66  > 如果开发者没有使用"-g"指定事件类型,hisysevent命令行工具将查询所有类型的系统事件。
67
68  样例:查询**SECURITY**(安全)类型的系统事件。
69
70  ![](figures/hisysevent-l-g.png)
71
72- 使用"-s"指定起始原始时间戳、"-e"指定截止原始时间戳,完成对特定时间段内系统事件的查询。
73
74  > **说明:**
75  > 原始时间戳精确度为毫秒。
76
77  样例:查询起始时间戳是1708604541551,结束时间戳是1708604558551时间段内的所有系统事件。
78
79  ![](figures/hisysevent-l-s-e.png)
80
81- 使用"-S"指定起始格式化时间戳、"-E"指定截止格式化时间戳,完成对特定时间段内系统事件的查询。
82
83  > **说明:**
84  > 格式化时间戳的格式为:"YYYY-MM-DD hh:mm:ss"。
85
86  样例:查询起始时间戳是"2024-02-22 20:22:21",结束时间戳是"2024-02-22 20:22:38"时间段内的所有系统事件。
87
88  ![](figures/hisysevent-l-S-E-format.png)
89
90- 使用"-o"指定事件域,"-n"指定事件名,以及"-c"指定事件域和事件名称的匹配规则,来完成系统事件更高精度的查询。
91
92  > **说明:**
93  > 查询历史事件时,使用"-c"只能指定**WHOLE_WORD**(全词匹配)一种匹配规则。
94  >
95  > 如果开发者不使用"-c"指定匹配规则,hisysevent命令行工具将使用**WHOLE_WORD**(全词匹配)匹配规则进行查询匹配。
96
97  样例:使用全词匹配规则,查询事件域为"AAFWK",事件名称为"CONNECT_SERVICE"的系统事件。
98
99  ![](figures/hisysevent-l-o-n-c.png)
100
101- 使用"-m"指定查询的最大系统事件条数。
102
103  > **说明:**
104  > 查询历史事件时,如果开发者不使用"-m"指定查询的最大系统事件条数,hisysevent命令行工具默认最多只查询10000条系统事件。
105
106  ![](figures/hisysevent-l-m.png)
107
108  ![](figures/hisysevent-l-wc-l.png)
109
110## 合法性检查模式
111
112可以使用"-v"打开合法性检查模式。
113
114在合法性检查模式开启后,任何订阅或者查询到的系统事件中,如果包含非法内容都会红色高亮显示。
115
116> **说明:**
117>
118> “非法内容”的定义标准:
119>
120> 1. 未配置的自定义参数键。
121> 2. 类型和定义的类型不匹配的值。
122
123样例:事件域为"ACE",事件名称为"INTERACTION_APP_JANK"的<!--RP1-->[系统事件配置](../../device-dev/subsystems/subsys-dfx-hisysevent-logging-config.md)<!--RP1End-->中不包含"DURITION"、"DISPLAY_ANIMATOR"自定义参数,但是实际落盘的系统事件却包含此字符串类型的键值对,合法性检查模式开启的情况下,此键值对的键被红色高亮标注。
124
125![](figures/hisysevent-v.png)
126