提交 f4bc47b0 编写于 作者: X xuyong

调整表格为md标准格式

Signed-off-by: Nxuyong <xuyong59@huawei.com>
上级 4c0d8e83
......@@ -81,9 +81,10 @@
- [HiTrace开发指导](subsys-dfx-hitrace.md)
- [HiCollie开发指导](subsys-dfx-hicollie.md)
- [HiSysEvent开发指导](subsys-dfx-hisysevent.md)
- [HiSysEvent打点指导](subsys-dfx-hisysevent-write.md)
- [HiSysEvent订阅指导](subsys-dfx-hisysevent-read.md)
- [HiSysEvent查询指导](subsys-dfx-hisysevent-select.md)
- [HiSysEvent打点配置指导](subsys-dfx-hisysevent-logging-config.md)
- [HiSysEvent打点指导](subsys-dfx-hisysevent-logging.md)
- [HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)
- [HiSysEvent查询指导](subsys-dfx-hisysevent-querying.md)
- [HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)
- [研发工具链](subsys-toolchain.md)
- [bytrace使用指导](subsys-toolchain-bytrace-guide.md)
......
......@@ -2,7 +2,7 @@
- [概述](#section315316685112)
- [功能简介](#section123181433335224)
- [约束与限制](#section123181433375224)
- [约束与限制](#section123181433375224)
- [开发指导](#section315316685113)
- [接口说明](#section0342191810519)
- [开发实例](#section123181432175110)
......@@ -17,7 +17,7 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
**HiSysEvent事件订阅条件约束:**
- 在订阅HiSysEvent事件之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[《HiSysEvent打点配置指导》](subsys-dfx-hisysevent-write-config.md)
- 在订阅HiSysEvent事件之前,需要先完成HiSysEvent打点配置,具体配置方法请参考[《HiSysEvent打点配置指导》](subsys-dfx-hisysevent-logging-config.md)
## 开发指导<a name="section315316685113"></a>
......@@ -25,74 +25,18 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
**表 1** HiSysEvent订阅接口
<a name="table1844019587496"></a>
<table><thead align="left"><tr id="row1440058184916"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p19441135844915"><a name="p19441135844915"></a><a name="p19441135844915"></a>接口名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p13441195815491"><a name="p13441195815491"></a><a name="p13441195815491"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p877916438211"><a name="p877916438211"></a><a name="p877916438211"></a>int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener, std::vector&lt;ListenerRule&gt;&amp; rules)</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>接口功能:<br>&emsp;&emsp;注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>输入参数:</p>
<a name="ul6717142214919"></a><a name="ul6717142214919"></a><ul id="ul6717142214919"><li>listener:订阅回调对象。</li><li>rules:事件订阅规则。</li></ul>
<p id="p83591223153818"><a name="p83591223153818"></a><a name="p83591223153818"></a>返回值:</p>
<a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li>0:订阅成功,重复订阅。</li><li>1:订阅成功,初次订阅。</li><li>其他返回值:订阅失败。</li></ul>
</td>
</tr>
<tr id="row910319443242"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p15104154411248"><a name="p15104154411248"></a><a name="p15104154411248"></a>void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener)</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p1104194420248"><a name="p1104194420248"></a><a name="p1104194420248"></a>接口功能:<br>&emsp;&emsp;移除订阅hisysevent系统事件侦听对象。</p>
<p id="p7943171095411"><a name="p7943171095411"></a><a name="p7943171095411"></a>输入参数:</p>
<a name="ul894321075411"></a><a name="ul894321075411"></a><ul id="ul894321075411"><li>listener:订阅回调对象。</li></ul>
<p id="p9744631162515"><a name="p9744631162515"></a><a name="p9744631162515"></a>返回值:<br>&emsp;&emsp;无。</p>
</td>
</tr>
</tbody>
</table>
| 接口名称 | 描述 |
| -------- | --------- |
|int HiSysEventManager::AddEventListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener, std::vector&lt;ListenerRule&gt;&amp; rules)|接口功能:注册订阅HiSysEvent系统事件侦听对象,可设置规则订阅某些事件。<br><br>输入参数:<ul><li>listener:订阅回调对象。</li><li>rules:事件订阅规则。</li></ul>返回值:<ul><li>0:订阅成功,重复订阅。</li><li>1:订阅成功,初次订阅。</li><li>其他值:订阅失败。</li></ul>|
|void HiSysEventManager::RemoveListener(std::shared_ptr&lt;HiSysEventSubscribeCallBackBase&gt; listener)|接口功能:移除订阅hisysevent系统事件侦听对象。<br><br>输入参数:<ul><li>listener:订阅回调对象。</ul>返回值:<br>&emsp;&emsp;无。|
**表 2** ListenerRule订阅规则对象
<a name="table1844019587498"></a>
<table><thead align="left"><tr id="row1440058184918"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p19441135844917"><a name="p19441135844917"></a><a name="p19441135844917"></a>接口名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p13441195815493"><a name="p13441195815493"></a><a name="p13441195815493"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p877916438213"><a name="p877916438213"></a><a name="p877916438213"></a>ListenerRule(const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD) </p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p14727325133218"><a name="p14727325133218"></a><a name="p14727325133218"></a>接口功能:<br>&emsp;&emsp;订阅规则构造函数,创建事件标签订阅规则对象。</p>
<p id="p167271525203215"><a name="p167271525203215"></a><a name="p167271525203215"></a>输入参数:</p>
<a name="ul6717142214921"></a><a name="ul6717142214921"></a><ul id="ul6717142214921">
<li>tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。</li>
<li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul>
</td>
</tr>
<tr id="row910319443244"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p15104154411250"><a name="p15104154411250"></a><a name="p15104154411250"></a>ListenerRule(const std::string&amp; domain, const std::string&amp; eventName, RuleType ruleType = RuleType::WHOLE_WORD)</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p15104154411250"><a name="p15104154411250"></a><a name="p15104154411250"></a>接口功能:<br>&emsp;&emsp;订阅规则构造函数,创建事件领域与事件名称订阅规则对象。</p>
<p id="p7943171095413"><a name="p7943171095413"></a><a name="p7943171095413"></a>输入参数:</p>
<a name="ul894321075413"></a><a name="ul894321075413"></a><ul id="ul894321075413">
<li>domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。</li>
<li>eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。</li>
<li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul>
</td>
</tr>
<tr id="row910319443246"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p15104154411252"><a name="p15104154411252"></a><a name="p15104154411252"></a>ListenerRule(const std::string&amp; domain, const std::string& eventName, const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD)</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p15104154411252"><a name="p15104154411252"></a><a name="p15104154411252"></a>接口功能:<br>&emsp;&emsp;订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。</p>
<p id="p7943171095415"><a name="p7943171095415"></a><a name="p7943171095415"></a>输入参数:</p>
<a name="ul894321075415"></a><a name="ul894321075415"></a><ul id="ul894321075415">
<li>tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。</li>
<li>domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。</li>
<li>eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。</li>
<li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul></ul>
</td>
</tr>
</tbody>
</table>
| 接口名称 | 描述 |
| -------- | --------- |
|ListenerRule(const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD)|接口功能:订阅规则构造函数,创建事件标签订阅规则对象。<br><br>输入参数:<ul><li>tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。</li><li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul>|
|ListenerRule(const std::string&amp; domain, const std::string&amp; eventName, RuleType ruleType = RuleType::WHOLE_WORD)|接口功能:订阅规则构造函数,创建事件领域与事件名称订阅规则对象。<br><br>输入参数:<ul><li>domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。</li><li>eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。</li><li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul>|
|ListenerRule(const std::string&amp; domain, const std::string& eventName, const std::string&amp; tag, RuleType ruleType = RuleType::WHOLE_WORD)|接口功能:订阅规则构造函数,创建事件领域、事件名称,事件标签订阅规则对象。<br><br>输入参数:<ul><li>tag:订阅规则的HisysEvent事件标签,字符串类型,最大长度16个字符(含),有效字符包含大小写字母及数字。</li><li>domain:订阅规则的HisysEvent事件领域,字符串类型,最大长度16个字符(含),有效字符包含大写字母、数字及下划线。</li><li>eventName:订阅规则的HisysEvent事件名称,字符串类型,最大长度32个字符(含),有效字符包含大写字母、数字及下划线。</li><li>ruleType:订阅规则的规则类型,RuleType枚举类型(参考表3)。</li></ul>|
**表 3** RuleType类型
......@@ -104,24 +48,9 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
**表 4** HiSysEventSubscribeCallBackBase订阅对象
<a name="table1011703742711"></a>
<table><thead align="left"><tr id="row121187375270"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p2118143782719"><a name="p2118143782719"></a><a name="p2118143782719"></a>接口名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p4118037152710"><a name="p4118037152710"></a><a name="p4118037152710"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row111823719274"><td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 "><p id="p161181537112712"><a name="p161181537112712"></a><a name="p161181537112712"></a>void HiSysEventSubscribeCallBackBase::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>接口功能:<br>&emsp;&emsp;订阅事件的回调接口。</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>输入参数:</p>
<a name="ul02091819131015"></a><a name="ul02091819131015"></a><ul id="ul02091819131015"><li>domain:事件所属领域。</li><li>eventName:事件的名称。</li><li>eventType:事件类型。</li><li>eventDetail:包含事件相关信息的字符串,以json的形式体现。</li></ul>
<p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>返回值:<br>&emsp;&emsp;无。</p>
</td>
</tr>
</tbody>
</table>
| 接口名称 | 描述 |
| -------- | --------- |
|void HiSysEventSubscribeCallBackBase::OnHandle(const std::string&amp; domain, const std::string&amp; eventName, const int eventType, const std::string&amp; eventDetail)|接口功能:订阅事件的回调接口。<br><br>输入参数:<ul><li>domain:事件所属领域。</li><li>eventName:事件的名称。</li><li>eventType:事件类型。</li><li>eventDetail:包含事件相关信息的字符串,以json的形式体现。</li></ul>返回值:<br>&emsp;&emsp;无。|
### 开发实例<a name="section123181432175110"></a>
......@@ -131,67 +60,67 @@ HiSysEvent提供了跨进程订阅机制,开发者可以通过注册订阅接
自定义订阅回调实现类头文件DemoListener.h:
```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
```
#ifndef DEMO_LISTENER_H
#define DEMO_LISTENER_H
#include "hisysevent_subscribe_callback_native.h"
#include "hisysevent_subscribe_callback_native.h"
#include <string>
#include <string>
class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative {
public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
void OnServiceDied();
};
class DemoListener : public OHOS::HiviewDFX::HiSysEventSubscribeCallBackNative {
public:
explicit DemoListener() : HiSysEventSubscribeCallBackNative() {}
void OnHandle(const std::string& domain, const std::string& eventName, const int eventType,
const std::string& eventDetail);
virtual ~DemoListener() {}
void OnServiceDied();
};
#endif DEMO_LISTENER_H
```
#endif DEMO_LISTENER_H
```
增加DemoListener.cpp文件,在DemoListener类中根据实际需求自定义订阅回调接口的实现逻辑:
```
#include "demo_listener.h"
```
#include "demo_listener.h"
#include <iostream>
#include <iostream>
void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail)
{
std::cout << eventDetail << std::endl;
}
void DemoListener::OnHandle(const std::string& domain, const std::string& eventName,
const int eventType, const std::string& eventDetail)
{
std::cout << eventDetail << std::endl;
}
void DemoListener::OnServiceDied()
{
std::cout << std::string("service disconnect, exit") << std::endl;
exit(0);
}
```
void DemoListener::OnServiceDied()
{
std::cout << std::string("service disconnect, exit") << std::endl;
exit(0);
}
```
通过HiSysEventManager类提供的AddEventListener接口注册回调对象,完成对HiSysEvent的订阅:
```
auto demoListener = std::make_shared<DemoListener>();
// 事件标签规则订阅,规则类型为默认的全词匹配类型
ListenerRule tagRule("dfx");
// 事件标签规则订阅,规则类型为正则匹配类型
ListenerRule regRule("dfx.*", RuleType::REGULAR);
// 事件领域及事件名称规则订阅,规则类型为前缀匹配类型
ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX);
std::vector<ListenerRule> sysRules;
sysRules.push_back(tagRule);
sysRules.push_back(regRule);
sysRules.push_back(domainNameRule);
HiSysEventManager::AddEventListener(demoListener, sysRules);
```
```
auto demoListener = std::make_shared<DemoListener>();
// 事件标签规则订阅,规则类型为默认的全词匹配类型
ListenerRule tagRule("dfx");
// 事件标签规则订阅,规则类型为正则匹配类型
ListenerRule regRule("dfx.*", RuleType::REGULAR);
// 事件领域及事件名称规则订阅,规则类型为前缀匹配类型
ListenerRule domainNameRule("HIVIEWDFX", "APP_USAGE", RuleType::PREFIX);
std::vector<ListenerRule> sysRules;
sysRules.push_back(tagRule);
sysRules.push_back(regRule);
sysRules.push_back(domainNameRule);
HiSysEventManager::AddEventListener(demoListener, sysRules);
```
2. 编译配置
在BUILD.gn编译文件中,需要添加依赖hisysevent\_native组件的libhisyseventmanager库:
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
external_deps = [ "hisysevent_native:libhisyseventmanager", ]
```
......@@ -2,10 +2,10 @@
- [概述](#section315316685115)
- [基本概念](#section123181432175143)
- [约束与限制](#section123181432175114)
- [约束与限制](#section123181432175114)
- [编写yaml文件](#section123181432175113)
- [yaml文件编写规则](#section123181432175133)
- [yaml文件编写样例](#section123181432175123)
- [yaml文件编写样例](#section123181432175123)
- [验证yaml文件](#section123181432175115)
- [配置yaml文件路径](#section123181432175135)
- [编译yaml文件](#section123181432175137)
......@@ -37,135 +37,24 @@
- 每个事件领域可定义零个或多个事件名称,同一个事件领域内部的事件名称不能重名。
- 每个事件名称可定义多个参数,同一个事件名称内部的参数不能重名,每个事件名称**有且只有**一个名称为__BASE的参数,此参数字段组成如表1,他自定义参数,具体字段组成如表2。
**表 1** __BASE参数字段说明
<a name="table1844019587513"></a>
<table><thead align="left"><tr id="row1440058186118"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p19441135865020"><a name="p19441135845020"></a><a name="p19441135865020"></a>字段名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p13441195865593"><a name="p13441195865593"></a><a name="p13441195865593"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155868499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916438213"><a name="p877916438613"></a><a name="p877916438613"></a>type</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727325136218"><a name="p14727325136218"></a><a name="p14727325136218"></a>字段说明:<br>&emsp;&emsp;必选字段,用来标识该事件名称的类型。</p>
<p id="p167271525203615"><a name="p167271525203615"></a><a name="p167271525203615"></a>取值范围:</p>
<a name="ul6717142214621"></a><a name="ul6717142214621"></a>
<ul id="ul6717142214621">
<li>FAULT:错误类型。</li>
<li>STATISTIC:统计类型。</li>
<li>SECURITY:安全性。</li>
<li>BEHAVIOR:用户行为。</li>
</ul>
</td>
</tr>
<tr id="row16441155818699">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916438616"><a name="p877916438616"></a><a name="p877916438616"></a>level</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727325153218"><a name="p14727325153218"></a><a name="p14727325153218"></a>字段作用:<br>&emsp;&emsp;必选字段,用来标识该事件名称的级别。</p>
<p id="p167271525213215"><a name="p167271525213215"></a><a name="p167271525213215"></a>取值范围:</p>
<a name="ul6717142215021"></a><a name="ul6717142215021"></a>
<ul id="ul6717142215021">
<li>CRITICAL:严重。</li>
<li>MINOR:一般。</li>
</ul>
</td>
</tr>
<tr id="row16441155818519">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916458213"><a name="p877916458213"></a><a name="p877916458213"></a>tag</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727327733218"><a name="p14727327733218"></a><a name="p14727327733218"></a>字段作用:<br>&emsp;&emsp;可选字段,用来标识该事件名称的标签。</p>
<p id="p167271395203215"><a name="p167271395203215"></a><a name="p167271395203215"></a>定义规则:</p>
<a name="ul6717143414921"></a><a name="ul6717143414921"></a>
<ul id="ul6717143414921">
<li>最多可同时定义5个标签,标签之间使用空格来分隔。</li>
<li>单个标签最多包含16个字符,字符范围[a-zA-Z0-9]。</li>
</ul>
</td>
</tr>
<tr id="row16441155817799">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916477213"><a name="p877916477213"></a><a name="p877916477213"></a>desc</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727725133218"><a name="p14727725133218"></a><a name="p14727725133218"></a>字段作用:<br>&emsp;&emsp;必选字段,用来对该事件名称进行描述。</p>
<p id="p167277525203215"><a name="p167277525203215"></a><a name="p167277525203215"></a>定义规则:</p>
<a name="ul6777142214921"></a><a name="ul6777142214921"></a>
<ul id="ul6777142214921">
<li>至少包含3个字符,最多包含128个字符,字符范围[a-zA-Z0-9 _]</li>
</ul>
</td>
</tr>
</tbody>
</table>
**表 2** 自定义参数字段说明
<a name="table1844019587523"></a>
<table><thead align="left"><tr id="row1440060185118"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p19442235845020"><a name="p19442235845020"></a><a name="p19442235845020"></a>字段名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p13331195815593"><a name="p13331195815593"></a><a name="p13331195815593"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441232818499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p8779163453213"><a name="p8779163453213"></a><a name="p8779163453213"></a>type</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727325235218"><a name="p14727325235218"></a><a name="p14727325235218"></a>字段说明:<br>&emsp;&emsp;必选字段,用来标识该参数的类型。</p>
<p id="p167271372203215"><a name="p167271372203215"></a><a name="p167271372203215"></a>取值范围:</p>
<a name="ul6717342214921"></a><a name="ul6717342214921"></a>
<ul id="ul6717134514921">
<li>BOOL</li>
<li>INT8</li>
<li>UINT8</li>
<li>INT16</li>
<li>UINT16</li>
<li>INT32</li>
<li>UINT32</li>
<li>INT64</li>
<li>UINT64</li>
<li>FLOAT</li>
<li>DOUBLE</li>
<li>STRING</li>
</ul>
</td>
</tr>
<tr id="row16326155818499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877567438213"><a name="p877567438213"></a><a name="p877567438213"></a>arrsize</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727324893218"><a name="p14727324893218"></a><a name="p14727324893218"></a>字段作用:<br>&emsp;&emsp;可选字段,用来标识数组类型参数的长度。</p>
<p id="p1672715498703215"><a name="p1672715498703215"></a><a name="p1672715498703215"></a>取值范围:<br>&emsp;&emsp; 1~100</p>
</ul>
</td>
</tr>
<tr id="row16556155818499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p845916438213"><a name="p845916438213"></a><a name="p845916438213"></a>desc</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727343133218"><a name="p14727343133218"></a><a name="p14727343133218"></a>字段作用:<br>&emsp;&emsp;必选字段,用来对该参数进行描述。</p>
<p id="p167271524323215"><a name="p167271524323215"></a><a name="p167271524323215"></a>定义规则:</p>
<a name="ul6717142111921"></a><a name="ul6717142111921"></a>
<ul id="ul6717156714921">
<li>至少包含3个字符,最多包含128个字符,字符范围[a-zA-Z0-9 _]</li>
</ul>
</td>
</tr>
</tbody>
</table>
- 每个事件名称可定义多个参数,同一个事件名称内部的参数不能重名,每个事件名称**有且只有**一个名称为__BASE的参数,此参数字段组成如表1,其它自定义参数,具体字段组成如表2。
**表 1** __BASE参数字段说明
| 字段名称 | 描述 |
| ----- | ----- |
| type | 字段说明:必选字段,用来标识该事件名称的类型。<br><br>取值范围:<ul><li>FAULT:错误类型。</li><li>STATISTIC:统计类型。</li><li>SECURITY:安全性。</li><li>BEHAVIOR:用户行为。</li></ul> |
| level | 字段说明:必选字段,用来标识该事件名称的级别。<br><br>取值范围:<ul><li>CRITICAL:严重。</li><li>MINOR:一般。</li></ul> |
| tag | 字段说明:可选字段,用来标识该事件名称的标签。<br><br>定义规则:<ul><li>最多可同时定义5个标签,标签之间使用空格来分隔。</li><li>单个标签最多包含16个字符,字符范围[a-zA-Z0-9]</li></ul> |
| desc | 字段说明:必选字段,用来对该事件名称进行描述。<br><br>定义规则:<ul><li>至少包含3个字符,最多包含128个字符,字符范围[a-zA-Z0-9 _]</li></ul> |
**表 2** 自定义参数字段说明
| 字段名称 | 描述 |
| ----- | ----- |
| type | 字段说明:必选字段,用来标识该参数的类型。<br><br>取值范围:<ul><li>BOOL</li><li>UINT8</li><li>UINT16</li><li>INT32</li><li>UINT32</li><li>UINT64</li><li>FLOAT</li><li>DOUBLE</li><li>STRING</li></ul> |
| arrsize | 字段作用:可选字段,用来标识数组类型参数的长度。<br><br>取值范围:<ul><li>1~100</li></ul> |
| desc | 字段作用:必选字段,用来对该参数进行描述。<br><br>定义规则:<ul><li>至少包含3个字符,最多包含128个字符,字符范围[a-zA-Z0-9 _]</li></ul> |
## 编写yaml文件<a name="section123181432175113"></a>
......@@ -186,8 +75,8 @@
### yaml文件编写样例<a name="section123181432175123"></a>
- yaml文件样例指定的事件领域名称为MODULEA,该事件领域包含两个事件,名称分别是EVENT_NAMEA和EVENT_NAMEB。
- EVENT_NAMEA被定义成错误类型的严重事件,该事件包含类型为字符串类型的NAME1参数、字符串类型的NAME2参数及无符号短整型类型的NAME3参数,可以通过事件领域MODULEA和事件名称EVENT_NAMEA对其进行[实时订阅](subsys-dfx-hisysevent-read.md)
- EVENT_NAMEB被定义成统计类型的一般事件,EVENT_NAMEB包含类型为无符号短整型类型的NAME1参数及整型类型的NAME2参数。因为EVENT_NAMEB在__BASE参数中定义了名称为tag1和tag2的两个事件标签,所以不仅可以通过事件领域MODULEA和事件名称EVENT_NAMEB对其进行[实时订阅](subsys-dfx-hisysevent-read.md),,所以还可以通过事件标签对该事件进行[实时订阅](subsys-dfx-hisysevent-read.md)
- EVENT_NAMEA被定义成错误类型的严重事件,该事件包含类型为字符串类型的NAME1参数、字符串类型的NAME2参数及无符号短整型类型的NAME3参数,可以通过事件领域MODULEA和事件名称EVENT_NAMEA对其进行[实时订阅](subsys-dfx-hisysevent-listening.md)
- EVENT_NAMEB被定义成统计类型的一般事件,EVENT_NAMEB包含类型为无符号短整型类型的NAME1参数及整型类型的NAME2参数。因为EVENT_NAMEB在__BASE参数中定义了名称为tag1和tag2的两个事件标签,所以不仅可以通过事件领域MODULEA和事件名称EVENT_NAMEB对其进行[实时订阅](subsys-dfx-hisysevent-read.md),,所以还可以通过事件标签对该事件进行[实时订阅](subsys-dfx-hisysevent-listening.md)
```
##########################################
......@@ -266,7 +155,7 @@
```
cd 工程根目录的绝对路径
./build --product-name <product name>
./build --product-name <product name>
```
- 全量编译生成的hisysevent.def文件可以通过以下命令获取:
......@@ -285,31 +174,12 @@
./build/ohos/hisysevent/gen_def_from_all_yaml.py --yaml-list <yaml file list> --def-path <file store directory>
```
**表 3** 单文件编译参数说明
<a name="table1844019587534"></a>
<table><thead align="left"><tr id="row1440056575118"><th class="cellrowborder" valign="top" id="mcps1.2.3.1.1"><p id="p19432435845020"><a name="p19432435845020"></a><a name="p19432435845020"></a>选项名称</p>
</th>
<th class="cellrowborder" valign="top" id="mcps1.2.3.1.2"><p id="p13441196715593"><a name="p13441196715593"></a><a name="p13441196715593"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155854499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916558213"><a name="p877916558213"></a><a name="p877916558213"></a>--yaml-list</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727325133218"><a name="p14727325133218"></a><a name="p14727325133218"></a>指定需要编译的yaml文件路径列表,多个yaml文件路径之间用空格分隔。</p>
</td><tr id="row16441155832499">
<td class="cellrowborder" width="60%" valign="top" headers="mcps1.2.3.1.1 ">
<p id="p877916421213"><a name="p877916421213"></a><a name="p877916421213"></a>--def-path</p>
</td>
<td class="cellrowborder" valign="top" headers="mcps1.2.3.1.2 ">
<p id="p14727323533218"><a name="p14727323533218"></a><a name="p14727323533218"></a>指定编译生成的hisysevent.def文件的生成路径。</p>
</td>
</tr>
</tbody>
</table>
**表 3** 单文件编译参数说明
| 选项名称 | 描述 |
| ------ | ------ |
| --yaml-list | 指定需要编译的yaml文件路径列表,多个yaml文件路径之间用空格分隔。 |
| --def-path | 指定编译生成的hisysevent.def文件的生成路径。 |
### 打点及查询定义的事件<a name="section123181432175139"></a>
......
......@@ -15,106 +15,33 @@ HiSysEvent提供了查询接口,支持开发者设置条件查询HiSysEvent事
**表 1** HiSysEvent查询接口
<a name="table1844019587496"></a>
<table><thead align="left"><tr id="row1440058184916"><th class="cellrowborder" valign="top" width="48.120000000000005%" id="mcps1.2.3.1.1"><p id="p19441135844915"><a name="p19441135844915"></a><a name="p19441135844915"></a>接口名</p>
</th>
<th class="cellrowborder" valign="top" width="51.88%" id="mcps1.2.3.1.2"><p id="p13441195815491"><a name="p13441195815491"></a><a name="p13441195815491"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row16441155818499"><td class="cellrowborder" valign="top" width="48.120000000000005%" headers="mcps1.2.3.1.1 "><p id="p114411558204915"><a name="p114411558204915"></a><a name="p114411558204915"></a>bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBackBase&gt; queryCallBack)</p>
</td>
<td class="cellrowborder" valign="top" width="51.88%" headers="mcps1.2.3.1.2 "><p id="p14727325133216"><a name="p14727325133216"></a><a name="p14727325133216"></a>接口功能:支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。</p>
<p id="p167271525203213"><a name="p167271525203213"></a><a name="p167271525203213"></a>输入参数:</p>
<a name="ul6717142214919"></a><a name="ul6717142214919"></a><ul id="ul6717142214919"><li>queryArg:查询参数。</li><li>queryRules:事件过滤规则。</li><li>queryCallBack:查询接口回调对象。</li></ul>
<p id="p83591223153818"><a name="p83591223153818"></a><a name="p83591223153818"></a>返回值:</p>
<a name="ul12105842111913"></a><a name="ul12105842111913"></a><ul id="ul12105842111913"><li>true:查询成功。</li><li>false:查询失败。</li></ul>
</td>
</tr>
</tbody>
</table>
| 接口名称 | 描述 |
| -------- | --------- |
| bool HiSysEventManager::QueryHiSysEvent(struct QueryArg&amp; queryArg, std::vector&lt;struct QueryRule&gt;&amp; queryRules, std::shared_ptr&lt;HiSysEventQueryCallBackBase&gt; queryCallBack) | 接口功能:<br>&emsp;&emsp;支持设置查询时间段,事件领域,事件名称等,查询满足条件的HiSysEvent事件。<br><br>输入参数:<ul><li>queryArg:查询参数。</li><li>queryRules:事件过滤规则。</li><li>queryCallBack:查询接口回调对象。</li></ul>返回值:<ul><li>true:查询成功。</li><li>false:查询失败。</li></ul> |
**表 2** QueryArg查询参数对象
<a name="table13783145132014"></a>
<table><thead align="left"><tr id="row11784451112013"><th class="cellrowborder" valign="top" width="47.85%" id="mcps1.2.3.1.1"><p id="p187841351152012"><a name="p187841351152012"></a><a name="p187841351152012"></a>属性名称</p>
</th>
<th class="cellrowborder" valign="top" width="52.15%" id="mcps1.2.3.1.2"><p id="p4784105182019"><a name="p4784105182019"></a><a name="p4784105182019"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row3784451122012"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p2078414512209"><a name="p2078414512209"></a><a name="p2078414512209"></a>long long beginTime</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p37844517207"><a name="p37844517207"></a><a name="p37844517207"></a>事件开始时间。</p>
</td>
</tr>
<tr id="row1564913158230"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p11649191511239"><a name="p11649191511239"></a><a name="p11649191511239"></a>long long endTime</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p126491715182314"><a name="p126491715182314"></a><a name="p126491715182314"></a>事件结束事件。</p>
</td>
</tr>
<tr id="row461821212236"><td class="cellrowborder" valign="top" width="47.85%" headers="mcps1.2.3.1.1 "><p id="p461841262313"><a name="p461841262313"></a><a name="p461841262313"></a>int maxEvents</p>
</td>
<td class="cellrowborder" valign="top" width="52.15%" headers="mcps1.2.3.1.2 "><p id="p1161901214232"><a name="p1161901214232"></a><a name="p1161901214232"></a>返回最大的查询条数。</p>
</td>
</tr>
</tbody>
</table>
| 属性名称 | 描述 |
| -------- | --------- |
| beginTime | long long int类型,用于指定查询事件的开始时间。 |
| endTime | long long int类型,用于指定查询事件的结束时间。 |
| maxEvents | int类型,用于指定查询返回事件查询的最多条数。 |
**表 3** QueryRule查询规则对象
<a name="table1144011610564"></a>
<table><thead align="left"><tr id="row124411716175611"><th class="cellrowborder" valign="top" width="48.03%" id="mcps1.2.3.1.1"><p id="p19441151675610"><a name="p19441151675610"></a><a name="p19441151675610"></a>属性名称</p>
</th>
<th class="cellrowborder" valign="top" width="51.970000000000006%" id="mcps1.2.3.1.2"><p id="p16441171616563"><a name="p16441171616563"></a><a name="p16441171616563"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row174411216105615"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p496413536613"><a name="p496413536613"></a><a name="p496413536613"></a><span>uint32_t</span> ruleType</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p94416160565"><a name="p94416160565"></a><a name="p94416160565"></a>规则类型,目前默认是0。</p>
</td>
</tr>
<tr id="row64411816125614"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p1258135313712"><a name="p1258135313712"></a><a name="p1258135313712"></a>std::string domain;</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><a name="ul14905926102311"></a><a name="ul14905926102311"></a><ul id="ul14905926102311"><li>domain:事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。</li></ul>
</td>
</tr>
<tr id="row244161615619"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p227913101887"><a name="p227913101887"></a><a name="p227913101887"></a>std::vector&lt;std::string&gt; eventList</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><a name="ul248063132319"></a><a name="ul248063132319"></a><ul id="ul248063132319"><li>eventList:事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。</li></ul>
</td>
</tr>
</tbody>
</table>
| 属性名称 | 描述 |
| -------- | --------- |
| ruleType | uint32_t类型,用来标识查询规则对象的规则类型,默认是0。 |
| domain | string类型,用来标识查询规则对象的事件所属领域,如果传入的是空字符串,则默认事件领域字段匹配成功。 |
| eventList | std::vector&lt;std::string&gt;类型,事件名称的列表,如果传入的是空字符串,则默认事件名称字段匹配成功。 |
**表 4** HiSysEventQueryCallBackBase查询回调对象
<a name="table1451320549112"></a>
<table><thead align="left"><tr id="row951420547116"><th class="cellrowborder" valign="top" width="48.03%" id="mcps1.2.3.1.1"><p id="p15141546117"><a name="p15141546117"></a><a name="p15141546117"></a>接口名称</p>
</th>
<th class="cellrowborder" valign="top" width="51.970000000000006%" id="mcps1.2.3.1.2"><p id="p165141654151113"><a name="p165141654151113"></a><a name="p165141654151113"></a>描述</p>
</th>
</tr>
</thead>
<tbody><tr id="row35141554151115"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p4714143785410"><a name="p4714143785410"></a><a name="p4714143785410"></a>void HiSysEventQueryCallBackBase::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq)</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p1772213111011"><a name="p1772213111011"></a><a name="p1772213111011"></a>接口功能:订阅事件查询中的回调。</p>
<p id="p182081719151016"><a name="p182081719151016"></a><a name="p182081719151016"></a>输入参数:</p>
<a name="ul02091819131015"></a><a name="ul02091819131015"></a><ul id="ul02091819131015"><li>sysEvent:返回事件集合。</li><li>seq:事件序列集合。</li></ul>
<p id="p18209419201010"><a name="p18209419201010"></a><a name="p18209419201010"></a>返回值:无。</p>
</td>
</tr>
<tr id="row15141154161111"><td class="cellrowborder" valign="top" width="48.03%" headers="mcps1.2.3.1.1 "><p id="p561110151119"><a name="p561110151119"></a><a name="p561110151119"></a>void HiSysEventQueryCallBackBase::OnComplete(int32_t reason, int32_t total)</p>
</td>
<td class="cellrowborder" valign="top" width="51.970000000000006%" headers="mcps1.2.3.1.2 "><p id="p126315352130"><a name="p126315352130"></a><a name="p126315352130"></a>接口功能:订阅事件查询完成的回调。</p>
<p id="p6631235191316"><a name="p6631235191316"></a><a name="p6631235191316"></a>输入参数:</p>
<a name="ul106383518130"></a><a name="ul106383518130"></a><ul id="ul106383518130"><li>reason:查询结束返回原因,目前默认是0。</li><li>total:本次查询总共返回的事件总数量。</li></ul>
<p id="p176313516133"><a name="p176313516133"></a><a name="p176313516133"></a>返回值:无。</p>
</td>
</tr>
</tbody>
</table>
| 接口名称 | 描述 |
| -------- | --------- |
| void HiSysEventQueryCallBackBase::OnQuery(const ::std::vector&lt;std::string&gt;&amp; sysEvent, const ::std::vector&lt;int64_t&gt;&amp; seq) | 接口功能:订阅事件查询中的回调。<br><br>输入参数:<ul><li>sysEvent:返回事件集合。</li><li>seq:事件序列集合。</li></ul>返回值:<br>&emsp;&emsp;无。 |
| void HiSysEventQueryCallBackBase::OnComplete(int32_t reason, int32_t total) | 接口功能:订阅事件查询完成的回调。<br><br>输入参数:<ul><li>reason:查询结束返回原因,目前默认是0。</li><li>total:本次查询总共返回的事件总数量。</li></ul>返回值:<br>&emsp;&emsp;无。 |
### 开发实例<a name="section14286111855212"></a>
......
......@@ -6,6 +6,6 @@
- **[HiSysEvent订阅指导](subsys-dfx-hisysevent-listening.md)**
- **[HiSysEvent查询指导](subsys-dfx-hisysevent-query.md)**
- **[HiSysEvent查询指导](subsys-dfx-hisysevent-querying.md)**
- **[HiSysEvent工具使用指导](subsys-dfx-hisysevent-tool.md)**
\ No newline at end of file
......@@ -912,11 +912,13 @@
——>——>——>——>[HiSysEvent开发指导](device-dev/subsystems/subsys-dfx-hisysevent.md)
——>——>——>——>——>[HiSysEvent打点指导](device-dev/subsystems/subsys-dfx-hisysevent-write.md)
——>——>——>——>——>[HiSysEvent打点配置指导](device-dev/subsystems/subsys-dfx-hisysevent-logging-config.md)
——>——>——>——>——>[HiSysEvent订阅指导](device-dev/subsystems/subsys-dfx-hisysevent-read.md)
——>——>——>——>——>[HiSysEvent打点指导](device-dev/subsystems/subsys-dfx-hisysevent-logging.md)
——>——>——>——>——>[HiSysEvent查询指导](device-dev/subsystems/subsys-dfx-hisysevent-select.md)
——>——>——>——>——>[HiSysEvent订阅指导](device-dev/subsystems/subsys-dfx-hisysevent-listening.md)
——>——>——>——>——>[HiSysEvent查询指导](device-dev/subsystems/subsys-dfx-hisysevent-querying.md)
——>——>——>——>——>[HiSysEvent工具使用指导](device-dev/subsystems/subsys-dfx-hisysevent-tool.md)
......@@ -1964,4 +1966,4 @@
——>——>——>[社区沟通与交流](contribute/社区沟通与交流.md)
——>——>——>[FAQ](contribute/FAQ.md)
\ No newline at end of file
——>——>——>[FAQ](contribute/FAQ.md)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册