当应用发生故障时,如何获取系统日志?

当应用发生故障时,如何获取系统日志

阅读 489
1 个回答

解决措施

通过faultLogger.query(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>)接口可以对故障日志进行获取,其中FaultType是枚举类型,可选值如下所示:

image.png
image.png

第二个参数是传入的callback回调函数,用来获取故障信息数组。
示例代码中FaultType取值为JS_CRASH,queryFaultLogCallback即传入的回调函数,用来打印相关日志信息。

示例代码

import { FaultLogger } from '@kit.LancetKit' 
import { BusinessError } from '@kit.BasicServicesKit' 
 
function queryFaultLogCallback(error: BusinessError, value: Array<FaultLogger.FaultLogInfo>) { 
  if (error) { 
    console.info('error is ' + error); 
  } else { 
    console.info("value length is " + value.length); 
    let len: number = value.length; 
    for (let i = 0; i < len; i++) { 
      console.info("log: " + i); 
      console.info("Log pid: " + value[i].pid); 
      console.info("Log uid: " + value[i].uid); 
      console.info("Log type: " + value[i].type); 
      console.info("Log timestamp: " + value[i].timestamp); 
      console.info("Log reason: " + value[i].reason); 
      console.info("Log module: " + value[i].module); 
      console.info("Log summary: " + value[i].summary); 
      console.info("Log text: " + value[i].fullLog); 
    } 
  } 
} 
 
try { 
  FaultLogger.query(FaultLogger.FaultType.JS_CRASH, queryFaultLogCallback); 
} catch (err) { 
  console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`); 
}

参考链接

faultLogger

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏