• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.faultLogger (故障日志获取)
2
3> **说明:**
4>
5> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6
7## 导入模块
8
9```ts
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以下错误码的详细介绍参见[faultLogger错误码](errorcode-faultlogger.md)。
61
62| 错误码ID | 错误信息 |
63| --- | --- |
64| 10600001 | The service is not started or is faulty |
65
66**示例:**
67
68```ts
69import faultLogger from '@ohos.faultLogger'
70import { BusinessError } from '@ohos.base'
71
72function queryFaultLogCallback(error: BusinessError, value: Array<faultLogger.FaultLogInfo>) {
73    if (error) {
74        console.info('error is ' + error);
75    } else {
76        console.info("value length is " + value.length);
77        let len: number = value.length;
78        for (let i = 0; i < len; i++) {
79            console.info("log: " + i);
80            console.info("Log pid: " + value[i].pid);
81            console.info("Log uid: " + value[i].uid);
82            console.info("Log type: " + value[i].type);
83            console.info("Log timestamp: " + value[i].timestamp);
84            console.info("Log reason: " + value[i].reason);
85            console.info("Log module: " + value[i].module);
86            console.info("Log summary: " + value[i].summary);
87            console.info("Log text: " + value[i].fullLog);
88        }
89    }
90}
91try {
92    faultLogger.query(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
93} catch (err) {
94    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
95}
96```
97
98## faultLogger.query<sup>9+</sup>
99
100query(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
101
102获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。
103
104**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
105
106**参数:**
107
108| 参数名 | 类型 | 必填 | 说明 |
109| -------- | -------- | -------- | -------- |
110| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
111
112**返回值:**
113
114| 类型 | 说明 |
115| -------- | -------- |
116| Promise&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常 |
117
118**错误码:**
119
120以下错误码的详细介绍参见[faultLogger错误码](errorcode-faultlogger.md)。
121
122| 错误码ID | 错误信息 |
123| --- | --- |
124| 10600001 | The service is not started or is faulty |
125
126**示例:**
127
128```ts
129import faultLogger from '@ohos.faultLogger'
130import { BusinessError } from '@ohos.base'
131
132async function getLog() {
133    try {
134        let value: Array<faultLogger.FaultLogInfo> = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
135        if (value) {
136            console.info("value length is " + value.length);
137            let len: number = value.length;
138            for (let i = 0; i < len; i++) {
139                console.info("log: " + i);
140                console.info("Log pid: " + value[i].pid);
141                console.info("Log uid: " + value[i].uid);
142                console.info("Log type: " + value[i].type);
143                console.info("Log timestamp: " + value[i].timestamp);
144                console.info("Log reason: " + value[i].reason);
145                console.info("Log module: " + value[i].module);
146                console.info("Log summary: " + value[i].summary);
147                console.info("Log text: " + value[i].fullLog);
148            }
149        }
150    } catch (err) {
151        console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
152    }
153}
154```
155
156## faultLogger.querySelfFaultLog<sup>(deprecated)</sup>
157
158querySelfFaultLog(faultType: FaultType, callback: AsyncCallback&lt;Array&lt;FaultLogInfo&gt;&gt;) : void
159
160> **说明:**
161>
162> 从 API Version 9 开始废弃,建议使用[faultLogger.query](#faultloggerquery9)替代。
163
164获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。
165
166**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
167
168**参数:**
169
170| 参数名 | 类型 | 必填 | 说明 |
171| -------- | -------- | -------- | -------- |
172| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
173| callback | AsyncCallback&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串
174
175**示例:**
176
177```ts
178import faultLogger from '@ohos.faultLogger'
179import { BusinessError } from '@ohos.base'
180
181function queryFaultLogCallback(error: BusinessError, value: Array<faultLogger.FaultLogInfo>) {
182    if (error) {
183        console.info('error is ' + error);
184    } else {
185        console.info("value length is " + value.length);
186        let len: number = value.length;
187        for (let i = 0; i < len; i++) {
188            console.info("log: " + i);
189            console.info("Log pid: " + value[i].pid);
190            console.info("Log uid: " + value[i].uid);
191            console.info("Log type: " + value[i].type);
192            console.info("Log timestamp: " + value[i].timestamp);
193            console.info("Log reason: " + value[i].reason);
194            console.info("Log module: " + value[i].module);
195            console.info("Log summary: " + value[i].summary);
196            console.info("Log text: " + value[i].fullLog);
197        }
198    }
199}
200faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);
201```
202
203## faultLogger.querySelfFaultLog<sup>(deprecated)</sup>
204
205querySelfFaultLog(faultType: FaultType) : Promise&lt;Array&lt;FaultLogInfo&gt;&gt;
206
207> **说明:**
208>
209> 从 API Version 9 开始废弃,建议使用[faultLogger.query](#faultloggerquery9-1)替代。
210
211获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。
212
213**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger
214
215**参数:**
216
217| 参数名 | 类型 | 必填 | 说明 |
218| -------- | -------- | -------- | -------- |
219| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 |
220
221**返回值:**
222
223| 类型 | 说明 |
224| -------- | -------- |
225| Promise&lt;Array&lt;[FaultLogInfo](#faultloginfo)&gt;&gt; | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>-&nbsp;value拿到故障信息数组;value为undefined表示获取过程中出现异常 |
226
227**示例:**
228
229```ts
230import faultLogger from '@ohos.faultLogger'
231
232async function getLog() {
233    let value: Array<faultLogger.FaultLogInfo> = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
234    if (value) {
235        console.info("value length is " + value.length);
236        let len: number = value.length;
237        for (let i = 0; i < len; i++) {
238            console.info("log: " + i);
239            console.info("Log pid: " + value[i].pid);
240            console.info("Log uid: " + value[i].uid);
241            console.info("Log type: " + value[i].type);
242            console.info("Log timestamp: " + value[i].timestamp);
243            console.info("Log reason: " + value[i].reason);
244            console.info("Log module: " + value[i].module);
245            console.info("Log summary: " + value[i].summary);
246            console.info("Log text: " + value[i].fullLog);
247        }
248    }
249}
250```