HarmonyOS API:系统基础能力

joytrian
发布于 2023-4-7 16:05
浏览
0收藏

版本:v3.1 Beta

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

更新时间: 2023-03-10 16:42


说明

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

导入模块

import faultLogger from '@ohos.faultLogger'

FaultType

故障类型枚举。

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

名称

说明

NO_SPECIFIC

0

不区分故障类型

CPP_CRASH

2

C++程序故障类型

JS_CRASH

3

JS程序故障类型

APP_FREEZE

4

应用程序卡死故障类型

FaultLogInfo

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

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

名称

类型

必填

说明

pid

number

故障进程的进程id

uid

number

故障进程的用户id

type

​FaultType​

故障类型

timestamp

number

日志生成时的秒级时间戳

reason

string

发生故障的原因

module

string

发生故障的模块

summary

string

故障的概要

fullLog

string

故障日志全文

faultLogger.querySelfFaultLog(deprecated)

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

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

说明

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

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

参数:

参数名

类型

必填

说明

faultType

​FaultType​

输入要查询的故障类型。

callback

AsyncCallback<Array<​​FaultLogInfo​​>>

回调函数,在回调函数中获取故障信息数组。

- value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串

示例:

function queryFaultLogCallback(error, value) {
    if (error) {
        console.info('error is ' + error);
    } else {
        console.info("value length is " + value.length);
        let len = 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>>

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

说明

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

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

参数:

参数名

类型

必填

说明

faultType

​FaultType​

输入要查询的故障类型。

返回值:

类型

说明

Promise<Array<​​FaultLogInfo​​>>

Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。

- value拿到故障信息数组;value为undefined表示获取过程中出现异常

示例:

async function getLog() {
    let value = await faultLogger.querySelfFaultLog(faultLogger.FaultType.JS_CRASH);
    if (value) {
        console.info("value length is " + value.length);
        let len = 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.query9+

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

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

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

参数:

参数名

类型

必填

说明

faultType

​FaultType​

输入要查询的故障类型。

callback

AsyncCallback<Array<​​FaultLogInfo​​>>

回调函数,在回调函数中获取故障信息数组。

- value拿到故障信息数组;value为undefined表示获取过程中出现异常,error返回错误提示字符串

错误码:

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

错误码ID

错误信息

10600001

The service is not started or is faulty

示例:

function queryFaultLogCallback(error, value) {
    if (error) {
        console.info('error is ' + error);
    } else {
        console.info("value length is " + value.length);
        let len = 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.code}, message: ${err.message}`);
}

faultLogger.query9+

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

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

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

参数:

参数名

类型

必填

说明

faultType

​FaultType​

输入要查询的故障类型。

返回值:

类型

说明

Promise<Array<​​FaultLogInfo​​>>

Promise实例,可以在其then()方法中获取故障信息实例,也可以使用await。

- value拿到故障信息数组;value为undefined表示获取过程中出现异常

错误码:

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

错误码ID

错误信息

10600001

The service is not started or is faulty

示例:

async function getLog() {
    try {
        let value = await faultLogger.query(faultLogger.FaultType.JS_CRASH);
        if (value) {
            console.info("value length is " + value.length);
            let len = 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.code}, message: ${err.message}`);
    }
}

@ohos.hichecker (检测模式)

更新时间: 2023-02-17 09:19


HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使用体验。


说明

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

导入模块

import hichecker from '@ohos.hichecker';

常量

提供了所有规则类型的常量。

系统能力: SystemCapability.HiviewDFX.HiChecker

名称

参数类型

说明

RULE_CAUTION_PRINT_LOG

bigint

告警规则,当有告警时记录日志。

RULE_CAUTION_TRIGGER_CRASH

bigint

告警规则,当有告警时让应用推出。

RULE_THREAD_CHECK_SLOW_PROCESS

bigint

检测规则,检测是否有耗时函数被调用。

RULE_CHECK_ABILITY_CONNECTION_LEAK

bigint

检测规则,检测是否发生ability泄露。

hichecker.addCheckRule9+

addCheckRule(rule: bigint): void

添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要添加的规则。

示例:

try {
    // 添加一条规则
    hichecker.addCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
    // 添加多条规则
    // hichecker.addCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
    console.error(`code: ${err.code}, message: ${err.message}`);
}

hichecker.removeCheckRule9+

removeCheckRule(rule: bigint): void

删除一条或多条规则,删除的规则后续将不再生效。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要删除的规则。

示例:

try {
    // 删除一条规则
    hichecker.removeCheckRule(hichecker.RULE_CAUTION_PRINT_LOG);
    // 删除多条规则
    // hichecker.removeCheckRule(
    //     hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);
} catch (err) {
    console.error(`code: ${err.code}, message: ${err.message}`);
}

hichecker.containsCheckRule9+

containsCheckRule(rule: bigint): boolean

当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要查询的规则。

返回值:

类型

说明

boolean

查询结果,true 表示规则已添加,false 表示规则未添加。

示例:

try {
    // 添加一条规则
    hichecker.addCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

    // 查询是否包含
    hichecker.containsCheckRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
    hichecker.containsCheckRule(hichecker.RULE_CAUTION_PRINT_LOG); // return false;
} catch (err) {
    console.error(`code: ${err.code}, message: ${err.message}`);
}

hichecker.addRule(deprecated)

addRule(rule: bigint): void

添加一条或多条规则到系统,系统根据添加的规则进行检测或反馈。

说明

从 API Version 9 开始废弃,建议使用​​hichecker.addCheckRule​​替代。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要添加的规则。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_CAUTION_PRINT_LOG);

// 添加多条规则
hichecker.addRule(
          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.removeRule(deprecated)

removeRule(rule: bigint): void

删除一条或多条规则,删除的规则后续将不再生效。

说明

从 API Version 9 开始废弃,建议使用​​hichecker.removeCheckRule​​替代。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要删除的规则。

示例:

// 删除一条规则
hichecker.removeRule(hichecker.RULE_CAUTION_PRINT_LOG);

// 删除多条规则
hichecker.removeRule(
          hichecker.RULE_CAUTION_PRINT_LOG | hichecker.RULE_CAUTION_TRIGGER_CRASH);

hichecker.getRule

getRule(): bigint

获取当前线程规则、进程规则、告警规则的合集。

系统能力: SystemCapability.HiviewDFX.HiChecker

返回值:

类型

说明

bigint

当前系统中添加的规则。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

// 获取已添加的规则
hichecker.getRule();   // return 1n;

hichecker.contains(deprecated)

contains(rule: bigint): boolean

当前已添加的规则集中是否包含了某一个特定的规则,如果传入的规则级别为线程级别,则仅在当前线程中进行查询。

说明

从 API Version 9 开始废弃,建议使用​​hichecker.containsCheckRule​​替代。

系统能力: SystemCapability.HiviewDFX.HiChecker

参数:

参数名

类型

必填

说明

rule

bigint

需要查询的规则。

返回值:

类型

说明

boolean

查询结果,true 表示规则已添加,false 表示规则未添加。

示例:

// 添加一条规则
hichecker.addRule(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS);

// 查询是否包含
hichecker.contains(hichecker.RULE_THREAD_CHECK_SLOW_PROCESS); // return true;
hichecker.contains(hichecker.RULE_CAUTION_PRINT_LOG); // return false;


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-hichecker-0000001477981445-V3?catalogVersion=V3​

已于2023-4-7 16:05:11修改
收藏
回复
举报
回复