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<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以下错误码的详细介绍参见[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<Array<FaultLogInfo>> 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<Array<[FaultLogInfo](#faultloginfo)>> | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>- 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<Array<FaultLogInfo>>) : 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<Array<[FaultLogInfo](#faultloginfo)>> | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>- 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<Array<FaultLogInfo>> 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<Array<[FaultLogInfo](#faultloginfo)>> | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>- 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```