• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.faultLogger (故障日志获取)
2
3> **说明:**
4>
5> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6
7## 导入模块
8
9```js
10import faultLogger from '@ohos.faultLogger'
11```
12
13## FaultType
14
15故障类型枚举。
16
17**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
18
19| 名称 | 值 | 说明 |
20| -------- | -------- | -------- |
21| NO_SPECIFIC | 0 | 不区分故障类型 |
22| CPP_CRASH | 2 | C++程序故障类型 |
23| JS_CRASH | 3 | JS程序故障类型 |
24| APP_FREEZE | 4 | 应用程序卡死故障类型 |
25
26## FaultLogInfo
27
28故障信息数据结构,获取到的故障信息的数据结构。
29
30**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
31
32| 名称 | 类型 | 必填 | 说明 |
33| -------- | -------- | -------- | -------- |
34| pid | number | 是 | 故障进程的进程id |
35| uid | number | 是 | 故障进程的用户id |
36| type | [FaultType](#faulttype) | 是 | 故障类型 |
37| timestamp | number | 是 | 日志生成时的秒级时间戳 |
38| reason | string | 是 | 发生故障的原因 |
39| module | string | 是 | 发生故障的模块 |
40| summary | string | 是 | 故障的概要 |
41| fullLog | string | 是 | 故障日志全文 |
42
43## faultLogger.query<sup>9+</sup>
44
45query(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;FaultLogInfo&gt;&gt;) : void
46
47获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。
48
49**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
50
51**参数:**
52
53| 参数名 | 类型 | 必填 | 说明 |
54| -------- | -------- | -------- | -------- |
55| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
56| callback | AsyncCallback&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
57
58**错误码:**
59
60以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md)。
61
62| 错误码ID | 错误信息 |
63| --- | --- |
64| 10600001 | The service is not started or is faulty |
65
66**示例:**
67
68```js
69function queryFaultLogCallback(error, value) {
70    if (error) {
71        console.info('error is ' + error);
72    } else {
73        console.info("value length is " + value.length);
74        let len = value.length;
75        for (let i = 0; i < len; i++) {
76            console.info("log: " + i);
77            console.info("Log pid: " + value[i].pid);
78            console.info("Log uid: " + value[i].uid);
79            console.info("Log type: " + value[i].type);
80            console.info("Log timestamp: " + value[i].timestamp);
81            console.info("Log reason: " + value[i].reason);
82            console.info("Log module: " + value[i].module);
83            console.info("Log summary: " + value[i].summary);
84            console.info("Log text: " + value[i].fullLog);
85        }
86    }
87}
88try {
89    faultLogger.query(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
90} catch (err) {
91    console.error(`code: ${err.code}, message: ${err.message}`);
92}
93```
94
95## faultLogger.query<sup>9+</sup>
96
97query(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
98
99获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。
100
101**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
102
103**参数:**
104
105| 参数名 | 类型 | 必填 | 说明 |
106| -------- | -------- | -------- | -------- |
107| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
108
109**返回值:**
110
111| 类型 | 说明 |
112| -------- | -------- |
113| Promise&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常 |
114
115**错误码:**
116
117以下错误码的详细介绍参见[ohos.faultLogger错误码](../errorcodes/errorcode-faultlogger.md)。
118
119| 错误码ID | 错误信息 |
120| --- | --- |
121| 10600001 | The service is not started or is faulty |
122
123**示例:**
124
125```js
126async function getLog() {
127    try {
128        let value = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
129        if (value) {
130            console.info("value length is " + value.length);
131            let len = value.length;
132            for (let i = 0; i < len; i++) {
133                console.info("log: " + i);
134                console.info("Log pid: " + value[i].pid);
135                console.info("Log uid: " + value[i].uid);
136                console.info("Log type: " + value[i].type);
137                console.info("Log timestamp: " + value[i].timestamp);
138                console.info("Log reason: " + value[i].reason);
139                console.info("Log module: " + value[i].module);
140                console.info("Log summary: " + value[i].summary);
141                console.info("Log text: " + value[i].fullLog);
142            }
143        }
144    } catch (err) {
145        console.error(`code: ${err.code}, message: ${err.message}`);
146    }
147}
148```
149
150## faultLogger.querySelfFaultLog<sup>(deprecated)</sup>
151
152querySelfFaultLog(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;FaultLogInfo&gt;&gt;) : void
153
154> **说明:**
155>
156> 从 API version 9 开始废弃,建议使用[faultLogger.query](#faultloggerquery9)替代。
157
158获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。
159
160**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
161
162**参数:**
163
164| 参数名 | 类型 | 必填 | 说明 |
165| -------- | -------- | -------- | -------- |
166| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
167| callback | AsyncCallback&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
168
169**示例:**
170
171```js
172function queryFaultLogCallback(error, value) {
173    if (error) {
174        console.info('error is ' + error);
175    } else {
176        console.info("value length is " + value.length);
177        let len = value.length;
178        for (let i = 0; i < len; i++) {
179            console.info("log: " + i);
180            console.info("Log pid: " + value[i].pid);
181            console.info("Log uid: " + value[i].uid);
182            console.info("Log type: " + value[i].type);
183            console.info("Log timestamp: " + value[i].timestamp);
184            console.info("Log reason: " + value[i].reason);
185            console.info("Log module: " + value[i].module);
186            console.info("Log summary: " + value[i].summary);
187            console.info("Log text: " + value[i].fullLog);
188        }
189    }
190}
191faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
192```
193
194## faultLogger.querySelfFaultLog<sup>(deprecated)</sup>
195
196querySelfFaultLog(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
197
198> **说明:**
199>
200> 从 API version 9 开始废弃,建议使用[faultLogger.query](#faultloggerquery9-1)替代。
201
202获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。
203
204**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
205
206**参数:**
207
208| 参数名 | 类型 | 必填 | 说明 |
209| -------- | -------- | -------- | -------- |
210| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
211
212**返回值:**
213
214| 类型 | 说明 |
215| -------- | -------- |
216| Promise&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常 |
217
218**示例:**
219
220```js
221async function getLog() {
222    let value = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
223    if (value) {
224        console.info("value length is " + value.length);
225        let len = value.length;
226        for (let i = 0; i < len; i++) {
227            console.info("log: " + i);
228            console.info("Log pid: " + value[i].pid);
229            console.info("Log uid: " + value[i].uid);
230            console.info("Log type: " + value[i].type);
231            console.info("Log timestamp: " + value[i].timestamp);
232            console.info("Log reason: " + value[i].reason);
233            console.info("Log module: " + value[i].module);
234            console.info("Log summary: " + value[i].summary);
235            console.info("Log text: " + value[i].fullLog);
236        }
237    }
238}
239```