1# 故障日志获取 2>  **说明:** 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.FaultLogger。 17 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.FaultLogger。 30 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<Array<[FaultLogInfo](#faultloginfo)>> | 是 | 回调函数,在回调函数中获取故障信息数组。<br/>- 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<Array<FaultLogInfo>> 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<Array<[FaultLogInfo](#faultloginfo)>> | Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。 <br/>- 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