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<Array<FaultLogInfo>>) : void 46 47获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。 48 49**系统能力:** SystemCapability.HiviewDFX.Hiview.FaultLogger 50 51**参数:** 52 53| 参数名 | 类型 | 必填 | 说明 | 54| -------- | -------- | -------- | -------- | 55| faultType | [FaultType](#faulttype) | 是 | 输入要查询的故障类型。 | 56| callback | AsyncCallback<Array<[FaultLogInfo](#faultloginfo)>> | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>- 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<Array<FaultLogInfo>> 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<Array<[FaultLogInfo](#faultloginfo)>> | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>- 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<Array<FaultLogInfo>>) : 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<Array<[FaultLogInfo](#faultloginfo)>> | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>- 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<Array<FaultLogInfo>> 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<Array<[FaultLogInfo](#faultloginfo)>> | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>- 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```