• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 故障日志获取
2> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
3> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
4
5## 导入模块
6
7```js
8import faultLogger from '@ohos.faultLogger'
9```
10
11
12## FaultType
13
14故障类型枚举。
15
16**系统能力:** 以下各项对应的系统能力均为SystemCapability.HiviewDFX.Hiview.FaultLogger17
18| 名称 | 默认值 | 说明 |
19| -------- | -------- | -------- |
20| NO_SPECIFIC | 0 | 不区分故障类型 |
21| CPP_CRASH | 2 | C++程序故障类型 |
22| JS_CRASH | 3 | JS程序故障类型 |
23| APP_FREEZE | 4 | 应用程序卡死故障类型 |
24
25## FaultLogInfo
26
27故障信息数据结构,获取到的故障信息的数据结构。
28
29**系统能力:** 以下各项对应的系统能力均为SystemCapability.HiviewDFX.Hiview.FaultLogger30
31| 名称 | 参数类型 | 说明 |
32| -------- | -------- | -------- |
33| pid | number | 故障进程的进程id |
34| uid | number | 故障进程的用户id |
35| type | [FaultType](#faulttype) | 故障类型 |
36| timestamp | number | 日志生成时的秒级时间戳 |
37| reason | string | 发生故障的原因 |
38| module | string | 发生故障的模块 |
39| summary | string | 故障的概要 |
40| fullLog | string | 故障日志全文 |
41
42## faultLogger.querySelfFaultLog
43
44querySelfFaultLog(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>) : void
45
46获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。
47
48**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
49
50**参数:**
51
52| 参数名 | 类型 | 必填 | 说明 |
53| -------- | -------- | -------- | -------- |
54| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
55| callback | AsyncCallbackArray&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
56
57**示例:**
58
59```js
60function queryFaultLogCallback(error, value) {
61    if (error) {
62        console.info('error is ' + error);
63    } else {
64        console.info("value length is " + value.length);
65        let len = value.length;
66        for (let i = 0; i < len; i++) {
67            console.info("log: " + i);
68            console.info("Log pid: " + value[i].pid);
69            console.info("Log uid: " + value[i].uid);
70            console.info("Log type: " + value[i].type);
71            console.info("Log timestamp: " + value[i].timestamp);
72            console.info("Log reason: " + value[i].reason);
73            console.info("Log module: " + value[i].module);
74            console.info("Log summary: " + value[i].summary);
75            console.info("Log text: " + value[i].fullLog);
76        }
77    }
78}
79faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
80```
81
82## faultLogger.querySelfFaultLog
83
84querySelfFaultLog(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
85
86获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。
87
88**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
89
90**参数:**
91
92| 参数名 | 类型 | 必填 | 说明 |
93| -------- | -------- | -------- | -------- |
94| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
95
96**返回值:**
97
98| 类型 | 说明 |
99| -------- | -------- |
100| Promise&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常 |
101
102**示例:**
103
104```js
105async function getLog() {
106    let value = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
107    if (value) {
108        console.info("value length is " + value.length);
109	let len = value.length;
110	for (let i = 0; i < len; i++) {
111	    console.info("log: " + i);
112	    console.info("Log pid: " + value[i].pid);
113	    console.info("Log uid: " + value[i].uid);
114	    console.info("Log type: " + value[i].type);
115	    console.info("Log timestamp: " + value[i].timestamp);
116	    console.info("Log reason: " + value[i].reason);
117	    console.info("Log module: " + value[i].module);
118	    console.info("Log summary: " + value[i].summary);
119	    console.info("Log text: " + value[i].fullLog);
120	}
121    }
122}
123```
124