harmony 鸿蒙@ohos.faultLogger (故障日志获取)

2022-08-09 浏览 (1514)

@ohos.faultLogger (故障日志获取)

说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import faultLogger from '@ohos.faultLogger'

FaultType

故障类型枚举。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

名称说明
NO_SPECIFIC0不区分故障类型
CPP_CRASH2C++程序故障类型
JS_CRASH3JS程序故障类型
APP_FREEZE4应用程序卡死故障类型

FaultLogInfo

故障信息数据结构,获取到的故障信息的数据结构。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

名称类型必填说明
pidnumber故障进程的进程id
uidnumber故障进程的用户id
typeFaultType故障类型
timestampnumber日志生成时的秒级时间戳
reasonstring发生故障的原因
modulestring发生故障的模块
summarystring故障的概要
fullLogstring故障日志全文

faultLogger.query9+

query(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>) : void

获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

参数:

参数名类型必填说明
faultTypeFaultType输入要查询的故障类型。
callbackAsyncCallback<Array<FaultLogInfo>>回调函数,在回调函数中获取故障信息数组。
- value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串

错误码:

以下错误码的详细介绍参见ohos.faultLogger错误码

错误码ID错误信息
10600001The service is not started or is faulty

示例:

import faultLogger from '@ohos.faultLogger'
import { BusinessError } from '@ohos.base'

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.query9+

query(faultType: FaultType) : Promise<Array<FaultLogInfo>>

获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

参数:

参数名类型必填说明
faultTypeFaultType输入要查询的故障类型。

返回值:

类型说明
Promise<Array<FaultLogInfo>>Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。
- value拿到故障信息数组;value为undefined表示获取过程中出现异常

错误码:

以下错误码的详细介绍参见ohos.faultLogger错误码

错误码ID错误信息
10600001The service is not started or is faulty

示例:

import faultLogger from '@ohos.faultLogger'
import { BusinessError } from '@ohos.base'

async function getLog() {
    try {
        let value: Array<faultLogger.FaultLogInfo> = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
        if (value) {
            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);
            }
        }
    } catch (err) {
        console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`);
    }
}

faultLogger.querySelfFaultLog(deprecated)

querySelfFaultLog(faultType: FaultType, callback: AsyncCallback<Array<FaultLogInfo>>) : void

说明:

从 API Version 9 开始废弃,建议使用faultLogger.query替代。

获取当前进程故障信息,该方法通过回调方式获取故障信息数组,故障信息数组内最多上报10份故障信息。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

参数:

参数名类型必填说明
faultTypeFaultType输入要查询的故障类型。
callbackAsyncCallback<Array<FaultLogInfo>>回调函数,在回调函数中获取故障信息数组。
- value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串

示例:

import faultLogger from '@ohos.faultLogger'
import { BusinessError } from '@ohos.base'

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);
        }
    }
}
faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH, queryFaultLogCallback);

faultLogger.querySelfFaultLog(deprecated)

querySelfFaultLog(faultType: FaultType) : Promise<Array<FaultLogInfo>>

说明:

从 API Version 9 开始废弃,建议使用faultLogger.query替代。

获取当前进程故障信息,该方法通过Promise方式返回故障信息数组,故障信息数组内最多上报10份故障信息。

系统能力: SystemCapability.HiviewDFX.Hiview.FaultLogger

参数:

参数名类型必填说明
faultTypeFaultType输入要查询的故障类型。

返回值:

类型说明
Promise<Array<FaultLogInfo>>Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。
- value拿到故障信息数组;value为undefined表示获取过程中出现异常

示例:

import faultLogger from '@ohos.faultLogger'

async function getLog() {
    let value: Array<faultLogger.FaultLogInfo> = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
    if (value) {
        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);
        }
    }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/fd8e1d4bc3e24148bbdbeda187bdec4b